Cilium Service Mesh Observability クイズ
このクイズでは、Hubble、metrics 収集、service maps、Golden Signals のモニタリング、および OpenTelemetry 統合に関する理解度を確認します。
クイズの問題
1. Hubble の主要コンポーネントではないものはどれですか?
A. Hubble Observer B. Hubble Relay C. Hubble Router D. Hubble UI
解答を表示
回答: C. Hubble Router
解説: Hubble の主要コンポーネントは、Hubble Observer(Cilium Agent に組み込み)、Hubble Relay(クラスター全体のフロー集約)、Hubble UI(可視化ダッシュボード)、および Hubble CLI(コマンドラインインターフェイス)です。Hubble Router は既存のコンポーネントではありません。
2. Hubble CLI で HTTP トラフィックのみをフィルタリングして監視するコマンドはどれですか?
A. hubble observe --type http B. hubble observe --protocol http C. hubble observe --filter http D. hubble observe --layer http
解答を表示
回答: B. hubble observe --protocol http
解説:hubble observe --protocol http コマンドは、HTTP プロトコルのトラフィックのみをフィルタリングします。他のプロトコル(tcp、dns など)も同じ方法でフィルタリングできます。
3. Prometheus で Hubble metrics を収集するには、values.yaml でどの設定を有効にする必要がありますか?
A. hubble.prometheus.enabled: true B. hubble.metrics.enabled C. hubble.export.prometheus: true D. prometheus.hubble: true
解答を表示
回答: B. hubble.metrics.enabled
解説: Hubble metrics を有効にするには、収集する metric の種類(dns、drop、tcp、flow、http など)を hubble.metrics.enabled の下でリストとして指定します。また、serviceMonitor.enabled: true を設定すると、Prometheus Operator による自動スクレイピングが可能になります。
4. モニタリングにおける 4 つの Golden Signals に含まれないものはどれですか?
A. Latency B. Traffic C. Availability D. Saturation
解答を表示
回答: C. Availability
解説: Google SRE で定義された 4 つの Golden Signals は、Latency、Traffic、Errors、および Saturation です。Availability は Golden Signals に含まれず、Errors metric を通じて間接的に測定されます。
5. Hubble でポリシーにより拒否されたトラフィックを監視する正しいコマンドはどれですか?
A. hubble observe --denied B. hubble observe --verdict DROPPED C. hubble observe --blocked D. hubble observe --policy-denied
解答を表示
回答: B. hubble observe --verdict DROPPED
解説:--verdict DROPPED オプションは、network policies により拒否されたトラフィックをフィルタリングします。反対に、--verdict FORWARDED は許可されたトラフィックを表示します。
6. PromQL クエリで HTTP P99 latency を測定するために使用する関数はどれですか?
A. avg() B. histogram_quantile() C. rate() D. sum()
解答を表示
回答: B. histogram_quantile()
解説: P99 latency のようなパーセンタイル metric には histogram_quantile() 関数を使用します。例: histogram_quantile(0.99, rate(hubble_http_request_duration_seconds_bucket[5m]))。ここで、0.99 は 99 パーセンタイルを意味します。
7. Hubble UI が提供する主な機能ではないものはどれですか?
A. Service Map B. Flow Timeline C. Auto Scaling D. Namespace Filter
解答を表示
回答: C. Auto Scaling
解説: Hubble UI は、service maps、flow timeline、namespace filter、verdict filter、および個々のフローの L7 details を提供します。Auto scaling は workload 管理機能であり、observability 機能ではありません。
8. Cilium で HTTP error rate を計算する PromQL クエリの正しい形式はどれですか?
A. hubble_http_errors_total / hubble_http_requests_total B. sum(rate(hubble_http_responses_total{status=~"5.."}[5m])) / sum(rate(hubble_http_responses_total[5m])) C. count(hubble_http_errors) / count(hubble_http_requests) D. hubble_http_error_rate
解答を表示
回答: B. sum(rate(hubble_http_responses_total{status=~"5.."}[5m])) / sum(rate(hubble_http_responses_total[5m]))
解説: HTTP error rate は、5xx レスポンス数を総レスポンス数で割って計算します。rate() 関数は 1 秒あたりの rate を計算し、status label filter(status=~"5..")は server errors のみを選択します。
9. Hubble で特定の service 宛てのトラフィックのみを監視するために使用するオプションはどれですか?
A. --destination-service B. --to-service C. --target-service D. --svc
解答を表示
回答: B. --to-service
解説:hubble observe --to-service <service-name> コマンドは、特定の service 宛てのトラフィックをフィルタリングします。反対に、--from-service は特定の service から発信されるトラフィックをフィルタリングします。
10. Cilium で connection tracking table の使用率をモニタリングする metric はどれですか?
A. cilium_ct_usage B. cilium_datapath_conntrack_active C. cilium_connections_total D. cilium_ct_table_size
解答を表示
回答: B. cilium_datapath_conntrack_active
解説: cilium_datapath_conntrack_active metric は、現在のアクティブな connection 数を表します。cilium_datapath_conntrack_max と組み合わせて、connection tracking table の使用率を計算できます。
11. Hubble の出力を JSON 形式で取得するために使用するオプションはどれですか?
A. --format json B. -o json C. --json D. --output-type json
解答を表示
回答: B. -o json
解説:hubble observe -o json コマンドは JSON 形式で出力します。これは、jq などのツールにパイプして追加処理を行う場合に役立ちます。
12. OpenTelemetry Collector を Hubble と統合するときに使用するプロトコルはどれですか?
A. HTTP REST API B. OTLP (OpenTelemetry Protocol) C. Prometheus Remote Write D. StatsD
解答を表示
回答: B. OTLP (OpenTelemetry Protocol)
解説: Hubble は OpenTelemetry Protocol(OTLP)を使用して、flow data を OpenTelemetry Collector にエクスポートできます。これにより、Jaeger、Prometheus、Loki などのさまざまなバックエンドにデータをルーティングできます。