Skip to content

Observability Stack クイズ

関連ドキュメント: Observability Stack

選択問題

1. LGTM observability stack のコンポーネントは何ですか?

  • A) Linux, Git, Terminal, Make
  • B) Loki (logs), Grafana (visualization), Tempo (traces), Mimir/Prometheus (metrics)
  • C) Lambda, Gateway, Transit, Monitor
  • D) Load balancer, Gateway, TLS, Mesh
答えを表示

回答: B) Loki (logs), Grafana (visualization), Tempo (traces), Mimir/Prometheus (metrics)

解説: LGTM は Grafana Labs の observability stack で、log aggregation のための Loki、visualization と dashboard のための Grafana、distributed tracing のための Tempo、metrics のための Mimir(または Prometheus)で構成されます。これらのコンポーネントはシームレスに統合されます。

2. Loki の SimpleScalable と Distributed deployment modes の違いは何ですか?

  • A) SimpleScalable はテスト専用である
  • B) SimpleScalable は read/write paths を分離し、Distributed はより細かな component separation を追加する
  • C) Distributed は非推奨である
  • D) これらは同一である
答えを表示

回答: B) SimpleScalable は read/write paths を分離し、Distributed はより細かな component separation を追加する

解説: SimpleScalable mode は Loki を、独立してスケールできる read paths と write paths に分割します。Distributed mode は、大規模環境で最大限の scalability と operational flexibility を実現するために、components(ingesters、distributors、queriers など)をさらに分離します。

3. Tempo における tail-based sampling の目的は何ですか?

  • A) log files の末尾をサンプリングするため
  • B) 完全な trace を確認した後に sampling decisions を行うため
  • C) query latency を削減するため
  • D) trace data を圧縮するため
答えを表示

回答: B) 完全な trace を確認した後に sampling decisions を行うため

解説: Tail-based sampling は、trace が完了するまで待ってから保存するかどうかを決定します。これにより、normal traces はサンプリングしつつ、すべての error traces や slow traces を保持できます。head-based sampling は trace の開始時に判断するため、これは実現できません。

4. observability stack において OTEL Collector はどのような役割を果たしますか?

  • A) metrics を長期保存する
  • B) applications から telemetry data を受信、処理、export する
  • C) Grafana dashboards を作成する
  • D) user authentication を管理する
答えを表示

回答: B) applications から telemetry data を受信、処理、export する

解説: OpenTelemetry Collector は telemetry pipeline として機能し、applications から traces、metrics、logs を受信し、それらを処理(batching、filtering、enriching)して、Tempo、Prometheus、Loki などの backends に export します。

5. Amazon Managed Prometheus (AMP) は Prometheus とどのように統合されますか?

  • A) Prometheus を完全に置き換える
  • B) Prometheus が remote_write を使用して storage のために metrics を AMP に送信する
  • C) AMP が Prometheus sidecar として実行される
  • D) AMP は CloudWatch でのみ動作する
答えを表示

回答: B) Prometheus が remote_write を使用して storage のために metrics を AMP に送信する

解説: AMP は Prometheus metrics のための managed で scalable な storage backend を提供します。Prometheus は引き続き local で scrape と rule evaluation を行いますが、remote_write を使用して metrics を AMP に送信します。その後、Grafana が PromQL を使用して AMP に query します。

6. 推奨される Loki label design strategy は何ですか?

  • A) flexibility のためにできるだけ多くの labels を使用する
  • B) index explosion を避けるために、bounded で low-cardinality な labels を使用する
  • C) labels を一切使用しない
  • D) timestamp labels のみを使用する
答えを表示

回答: B) index explosion を避けるために、bounded で low-cardinality な labels を使用する

解説: High-cardinality labels(user IDs や request IDs など)は過剰な streams を作成し、index を肥大化させます。Labels は low-cardinality(namespace、app、environment)にし、high-cardinality data は LogQL で filtering できるように log content に含めるべきです。

7. log collection における Promtail と Grafana Alloy の違いは何ですか?

  • A) Promtail は metrics のみを収集する
  • B) Alloy は logs、metrics、traces をサポートする unified agent であり、Promtail は Loki 専用である
  • C) Promtail は Alloy より新しい
  • D) Alloy は Kubernetes をサポートしていない
答えを表示

回答: B) Alloy は logs、metrics、traces をサポートする unified agent であり、Promtail は Loki 専用である

解説: Promtail は logs を Loki に送信するために特化して作られています。Grafana Alloy(旧 Agent)は、OpenTelemetry と native receivers を使用して logs、metrics、traces を扱う unified collector であり、必要な agents の数を減らします。

8. Loki と Tempo の間で Grafana datasource linking をどのように設定しますか?

  • A) 設定なしで自動的に link される
  • B) Tempo datasource を指す derived fields を Loki datasource に設定する
  • C) 別の linking plugin をインストールする
  • D) 共通の database に data を export する
答えを表示

回答: B) Tempo datasource を指す derived fields を Loki datasource に設定する

解説: Grafana の Loki datasource settings で、logs から trace IDs を抽出して Tempo datasource に link するための regex を持つ derived fields を設定します。これにより、log lines から関連する traces へのクリック可能な links が作成されます。

9. Tempo の compactor component の目的は何ですか?

  • A) network traffic を圧縮するため
  • B) trace blocks を merge し、retention を管理するため
  • C) TraceQL queries をコンパイルするため
  • D) dashboard loading time を短縮するため
答えを表示

回答: B) trace blocks を merge し、retention を管理するため

解説: Compactor は storage efficiency のために小さな trace blocks を大きなものに merge し、期限切れ data を削除することで retention policies を適用します。Distributed mode では別の process として、または monolithic binary 内で実行されます。

10. OTEL Collector processors を設定するとき、batch processor は何をしますか?

  • A) traces に batch IDs を割り当てる
  • B) efficiency を向上させるため、export 前に telemetry を batches にグループ化する
  • C) database batch operations を処理する
  • D) Kubernetes で batch jobs を作成する
答えを表示

回答: B) efficiency を向上させるため、export 前に telemetry を batches にグループ化する

解説: Batch processor は telemetry data を蓄積し、size または timeout thresholds に基づいて batches で送信します。これにより outgoing requests の数が減り、compression が向上し、receiving backends への load が低減されます。