すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB for ClickHouse:統合オブザーバビリティ

最終更新日:May 22, 2026

ApsaraDB for ClickHouse の統合オブザーバビリティサービスは、ClickHouse と OpenTelemetry に基づいて構築された高性能なオブザーバビリティソリューションです。ログ、トレース、メトリクスをシームレスに統合し、統一されたオブザーバビリティエクスペリエンスを提供することで、開発者や運用エンジニアが異なるツールを切り替えることなく、エンドツーエンドで問題を追跡し解決できるようにします。さらに、統合オブザーバビリティサービスには、オブザーバビリティデータ分析のためのインテリジェントな AI アシスタントが組み込まれています。OTel オブザーバビリティデータ (トレース/ログ/メトリクス) を自動的にクエリし、SQL クエリと構造化された RCA プロセスを通じて、オブザーバビリティのトラブルシューティングと根本原因分析を自動的に完了できます。このトピックでは、統合オブザーバビリティサービスの使用方法について説明します。

前提条件

ApsaraDB for ClickHouse クラスターが作成されていること

  • ApsaraDB for ClickHouse では、ワンクリックで統合オブザーバビリティを有効化できます。

  • ApsaraDB for ClickHouse Community-compatible Edition の統合オブザーバビリティは、現在招待制プレビューの段階です。この機能を有効にするには、テクニカルサポートに連絡してチケットを送信してください。

サービスの有効化

  1. ApsaraDB for ClickHouse コンソールにログインします。左上で、クラスターのリージョンを選択します。

  2. クラスターリスト ページで、対応するバージョンのインスタンスリストを選択し、対象のクラスター ID をクリックします。

  3. 左側メニューで、ワンストップ可観測 をクリックします。

  4. ダイアログボックスで、テーブルを自動作成するサンプルデータをインポートする を選択し、ニーズに基づいて LLM へのインターネットアクセスを有効にするかどうかを決定し、を決定 をクリックすることを推奨します。サービスの有効化には約 5〜10 分かかります。

    重要
    • LLM へのインターネットアクセス オプションを選択すると、追加料金が発生します。ニーズに基づいて有効にしてください。

    • サービスを有効化した後、LLM へのインターネットアクセスを別途有効にできます。

    パラメーター

    説明

    テーブルの自動作成

    • データベース clickobserve_service を作成し、このデータベースに次のテーブルを作成します: otel_logsotel_tracesotel_metrics_gaugeotel_metrics_histogramotel_metrics_sumotel_metrics_summaryotel_traces_trace_id_tsotel_traces_trace_id_ts_mvotel_metrics_exponential_histogram

      クリックしてテーブル構造を表示

      otel_logs

      CREATE TABLE IF NOT EXISTS "clickobserve_service"."otel_logs" (
          Timestamp DateTime64(9) CODEC(Delta(8), ZSTD(1)),
          TimestampTime DateTime DEFAULT toDateTime(Timestamp),
          TraceId String CODEC(ZSTD(1)),
          SpanId String CODEC(ZSTD(1)),
          TraceFlags UInt8,
          SeverityText LowCardinality(String) CODEC(ZSTD(1)),
          SeverityNumber UInt8,
          ServiceName LowCardinality(String) CODEC(ZSTD(1)),
          Body String CODEC(ZSTD(1)),
          ResourceSchemaUrl LowCardinality(String) CODEC(ZSTD(1)),
          ResourceAttributes Map(LowCardinality(String), String) CODEC(ZSTD(1)),
          ScopeSchemaUrl LowCardinality(String) CODEC(ZSTD(1)),
          ScopeName String CODEC(ZSTD(1)),
          ScopeVersion LowCardinality(String) CODEC(ZSTD(1)),
          ScopeAttributes Map(LowCardinality(String), String) CODEC(ZSTD(1)),
          LogAttributes Map(LowCardinality(String), String) CODEC(ZSTD(1)),
      
          INDEX idx_trace_id TraceId TYPE bloom_filter(0.001) GRANULARITY 1,
          INDEX idx_res_attr_key mapKeys(ResourceAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
          INDEX idx_res_attr_value mapValues(ResourceAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
          INDEX idx_scope_attr_key mapKeys(ScopeAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
          INDEX idx_scope_attr_value mapValues(ScopeAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
          INDEX idx_log_attr_key mapKeys(LogAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
          INDEX idx_log_attr_value mapValues(LogAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
          INDEX idx_body Body TYPE tokenbf_v1(32768, 3, 0) GRANULARITY 8
          ) ENGINE = SharedMergeTree()
          PARTITION BY toDate(TimestampTime)
          PRIMARY KEY (ServiceName, TimestampTime)
          ORDER BY (ServiceName, TimestampTime, Timestamp)
          TTL TimestampTime + toIntervalDay(180)
          SETTINGS index_granularity = 8192, ttl_only_drop_parts = 1;
      

      otel_traces

      CREATE TABLE IF NOT EXISTS "clickobserve_service"."otel_traces" (
          Timestamp DateTime64(9) CODEC(Delta, ZSTD(1)),
          TraceId String CODEC(ZSTD(1)),
          SpanId String CODEC(ZSTD(1)),
          ParentSpanId String CODEC(ZSTD(1)),
          TraceState String CODEC(ZSTD(1)),
          SpanName LowCardinality(String) CODEC(ZSTD(1)),
          SpanKind LowCardinality(String) CODEC(ZSTD(1)),
          ServiceName LowCardinality(String) CODEC(ZSTD(1)),
          ResourceAttributes Map(LowCardinality(String), String) CODEC(ZSTD(1)),
          ScopeName String CODEC(ZSTD(1)),
          ScopeVersion String CODEC(ZSTD(1)),
          SpanAttributes Map(LowCardinality(String), String) CODEC(ZSTD(1)),
          Duration UInt64 CODEC(ZSTD(1)),
          StatusCode LowCardinality(String) CODEC(ZSTD(1)),
          StatusMessage String CODEC(ZSTD(1)),
          Events Nested (
              Timestamp DateTime64(9),
              Name LowCardinality(String),
              Attributes Map(LowCardinality(String), String)
          ) CODEC(ZSTD(1)),
          Links Nested (
              TraceId String,
              SpanId String,
              TraceState String,
              Attributes Map(LowCardinality(String), String)
          ) CODEC(ZSTD(1)),
          INDEX idx_trace_id TraceId TYPE bloom_filter(0.001) GRANULARITY 1,
          INDEX idx_res_attr_key mapKeys(ResourceAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
          INDEX idx_res_attr_value mapValues(ResourceAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
          INDEX idx_span_attr_key mapKeys(SpanAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
          INDEX idx_span_attr_value mapValues(SpanAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
          INDEX idx_duration Duration TYPE minmax GRANULARITY 1
          ) ENGINE = SharedMergeTree()
          PARTITION BY toDate(Timestamp)
          ORDER BY (ServiceName, SpanName, toDateTime(Timestamp))
          TTL toDateTime(Timestamp) + toIntervalDay(180)
          SETTINGS index_granularity=8192, ttl_only_drop_parts = 1;

      otel_metrics_gauge

      CREATE TABLE IF NOT EXISTS "clickobserve_service"."otel_metrics_gauge" (
          ResourceAttributes Map(LowCardinality(String), String) CODEC(ZSTD(1)),
          ResourceSchemaUrl String CODEC(ZSTD(1)),
          ScopeName String CODEC(ZSTD(1)),
          ScopeVersion String CODEC(ZSTD(1)),
          ScopeAttributes Map(LowCardinality(String), String) CODEC(ZSTD(1)),
          ScopeDroppedAttrCount UInt32 CODEC(ZSTD(1)),
          ScopeSchemaUrl String CODEC(ZSTD(1)),
          ServiceName LowCardinality(String) CODEC(ZSTD(1)),
          MetricName String CODEC(ZSTD(1)),
          MetricDescription String CODEC(ZSTD(1)),
          MetricUnit String CODEC(ZSTD(1)),
          Attributes Map(LowCardinality(String), String) CODEC(ZSTD(1)),
          StartTimeUnix DateTime64(9) CODEC(Delta, ZSTD(1)),
          TimeUnix DateTime64(9) CODEC(Delta, ZSTD(1)),
          Value Float64 CODEC(ZSTD(1)),
          Flags UInt32 CODEC(ZSTD(1)),
          Exemplars Nested (
              FilteredAttributes Map(LowCardinality(String), String),
              TimeUnix DateTime64(9),
              Value Float64,
              SpanId String,
              TraceId String
          ) CODEC(ZSTD(1)),
          INDEX idx_res_attr_key mapKeys(ResourceAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
          INDEX idx_res_attr_value mapValues(ResourceAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
          INDEX idx_scope_attr_key mapKeys(ScopeAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
          INDEX idx_scope_attr_value mapValues(ScopeAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
          INDEX idx_attr_key mapKeys(Attributes) TYPE bloom_filter(0.01) GRANULARITY 1,
          INDEX idx_attr_value mapValues(Attributes) TYPE bloom_filter(0.01) GRANULARITY 1
          ) ENGINE = SharedMergeTree()
          TTL toDateTime(TimeUnix) + toIntervalDay(180)
          PARTITION BY toDate(TimeUnix)
          ORDER BY (ServiceName, MetricName, Attributes, toUnixTimestamp64Nano(TimeUnix))
          SETTINGS index_granularity=8192, ttl_only_drop_parts = 1;

      otel_metrics_histogram

      CREATE TABLE IF NOT EXISTS "clickobserve_service"."otel_metrics_histogram" (
          ResourceAttributes Map(LowCardinality(String), String) CODEC(ZSTD(1)),
          ResourceSchemaUrl String CODEC(ZSTD(1)),
          ScopeName String CODEC(ZSTD(1)),
          ScopeVersion String CODEC(ZSTD(1)),
          ScopeAttributes Map(LowCardinality(String), String) CODEC(ZSTD(1)),
          ScopeDroppedAttrCount UInt32 CODEC(ZSTD(1)),
          ScopeSchemaUrl String CODEC(ZSTD(1)),
          ServiceName LowCardinality(String) CODEC(ZSTD(1)),
          MetricName String CODEC(ZSTD(1)),
          MetricDescription String CODEC(ZSTD(1)),
          MetricUnit String CODEC(ZSTD(1)),
          Attributes Map(LowCardinality(String), String) CODEC(ZSTD(1)),
          StartTimeUnix DateTime64(9) CODEC(Delta, ZSTD(1)),
          TimeUnix DateTime64(9) CODEC(Delta, ZSTD(1)),
          Count UInt64 CODEC(Delta, ZSTD(1)),
          Sum Float64 CODEC(ZSTD(1)),
          BucketCounts Array(UInt64) CODEC(ZSTD(1)),
          ExplicitBounds Array(Float64) CODEC(ZSTD(1)),
          Exemplars Nested (
              FilteredAttributes Map(LowCardinality(String), String),
              TimeUnix DateTime64(9),
              Value Float64,
              SpanId String,
              TraceId String
          ) CODEC(ZSTD(1)),
          Flags UInt32 CODEC(ZSTD(1)),
          Min Float64 CODEC(ZSTD(1)),
          Max Float64 CODEC(ZSTD(1)),
          AggregationTemporality Int32 CODEC(ZSTD(1)),
          INDEX idx_res_attr_key mapKeys(ResourceAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
          INDEX idx_res_attr_value mapValues(ResourceAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
          INDEX idx_scope_attr_key mapKeys(ScopeAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
          INDEX idx_scope_attr_value mapValues(ScopeAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
          INDEX idx_attr_key mapKeys(Attributes) TYPE bloom_filter(0.01) GRANULARITY 1,
          INDEX idx_attr_value mapValues(Attributes) TYPE bloom_filter(0.01) GRANULARITY 1
          ) ENGINE = SharedMergeTree()
          TTL toDateTime(TimeUnix) + toIntervalDay(180)
          PARTITION BY toDate(TimeUnix)
          ORDER BY (ServiceName, MetricName, Attributes, toUnixTimestamp64Nano(TimeUnix))
          SETTINGS index_granularity=8192, ttl_only_drop_parts = 1;
      

      otel_metrics_sum

      CREATE TABLE IF NOT EXISTS "clickobserve_service"."otel_metrics_sum" (
          ResourceAttributes Map(LowCardinality(String), String) CODEC(ZSTD(1)),
          ResourceSchemaUrl String CODEC(ZSTD(1)),
          ScopeName String CODEC(ZSTD(1)),
          ScopeVersion String CODEC(ZSTD(1)),
          ScopeAttributes Map(LowCardinality(String), String) CODEC(ZSTD(1)),
          ScopeDroppedAttrCount UInt32 CODEC(ZSTD(1)),
          ScopeSchemaUrl String CODEC(ZSTD(1)),
          ServiceName LowCardinality(String) CODEC(ZSTD(1)),
          MetricName String CODEC(ZSTD(1)),
          MetricDescription String CODEC(ZSTD(1)),
          MetricUnit String CODEC(ZSTD(1)),
          Attributes Map(LowCardinality(String), String) CODEC(ZSTD(1)),
          StartTimeUnix DateTime64(9) CODEC(Delta, ZSTD(1)),
          TimeUnix DateTime64(9) CODEC(Delta, ZSTD(1)),
          Value Float64 CODEC(ZSTD(1)),
          Flags UInt32  CODEC(ZSTD(1)),
          Exemplars Nested (
              FilteredAttributes Map(LowCardinality(String), String),
              TimeUnix DateTime64(9),
              Value Float64,
              SpanId String,
              TraceId String
          ) CODEC(ZSTD(1)),
          AggregationTemporality Int32 CODEC(ZSTD(1)),
          IsMonotonic Boolean CODEC(Delta, ZSTD(1)),
          INDEX idx_res_attr_key mapKeys(ResourceAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
          INDEX idx_res_attr_value mapValues(ResourceAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
          INDEX idx_scope_attr_key mapKeys(ScopeAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
          INDEX idx_scope_attr_value mapValues(ScopeAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
          INDEX idx_attr_key mapKeys(Attributes) TYPE bloom_filter(0.01) GRANULARITY 1,
          INDEX idx_attr_value mapValues(Attributes) TYPE bloom_filter(0.01) GRANULARITY 1
          ) ENGINE = SharedMergeTree()
          TTL toDateTime(TimeUnix) + toIntervalDay(180)
          PARTITION BY toDate(TimeUnix)
          ORDER BY (ServiceName, MetricName, Attributes, toUnixTimestamp64Nano(TimeUnix))
          SETTINGS index_granularity=8192, ttl_only_drop_parts = 1;

      otel_metrics_summary

      CREATE TABLE IF NOT EXISTS "clickobserve_service"."otel_metrics_summary" (
          ResourceAttributes Map(LowCardinality(String), String) CODEC(ZSTD(1)),
          ResourceSchemaUrl String CODEC(ZSTD(1)),
          ScopeName String CODEC(ZSTD(1)),
          ScopeVersion String CODEC(ZSTD(1)),
          ScopeAttributes Map(LowCardinality(String), String) CODEC(ZSTD(1)),
          ScopeDroppedAttrCount UInt32 CODEC(ZSTD(1)),
          ScopeSchemaUrl String CODEC(ZSTD(1)),
          ServiceName LowCardinality(String) CODEC(ZSTD(1)),
          MetricName String CODEC(ZSTD(1)),
          MetricDescription String CODEC(ZSTD(1)),
          MetricUnit String CODEC(ZSTD(1)),
          Attributes Map(LowCardinality(String), String) CODEC(ZSTD(1)),
          StartTimeUnix DateTime64(9) CODEC(Delta, ZSTD(1)),
          TimeUnix DateTime64(9) CODEC(Delta, ZSTD(1)),
          Count UInt64 CODEC(Delta, ZSTD(1)),
          Sum Float64 CODEC(ZSTD(1)),
          ValueAtQuantiles Nested(
             Quantile Float64,
             Value Float64
          ) CODEC(ZSTD(1)),
          Flags UInt32  CODEC(ZSTD(1)),
          INDEX idx_res_attr_key mapKeys(ResourceAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
          INDEX idx_res_attr_value mapValues(ResourceAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
          INDEX idx_scope_attr_key mapKeys(ScopeAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
          INDEX idx_scope_attr_value mapValues(ScopeAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
          INDEX idx_attr_key mapKeys(Attributes) TYPE bloom_filter(0.01) GRANULARITY 1,
          INDEX idx_attr_value mapValues(Attributes) TYPE bloom_filter(0.01) GRANULARITY 1
          ) ENGINE = SharedMergeTree()
          TTL toDateTime(TimeUnix) + toIntervalDay(180)
          PARTITION BY toDate(TimeUnix)
          ORDER BY (ServiceName, MetricName, Attributes, toUnixTimestamp64Nano(TimeUnix))
          SETTINGS index_granularity=8192, ttl_only_drop_parts = 1;

      otel_traces_trace_id_ts

      CREATE TABLE IF NOT EXISTS "clickobserve_service"."otel_traces_trace_id_ts" (
          TraceId String CODEC(ZSTD(1)),
          Start DateTime CODEC(Delta, ZSTD(1)),
          End DateTime CODEC(Delta, ZSTD(1)),
          INDEX idx_trace_id TraceId TYPE bloom_filter(0.01) GRANULARITY 1
          ) ENGINE = SharedMergeTree()
          PARTITION BY toDate(Start)
          ORDER BY (TraceId, Start)
          TTL toDateTime(Start) + toIntervalDay(180)
          SETTINGS index_granularity=8192, ttl_only_drop_parts = 1;

      マテリアライズドビュー otel_traces_trace_id_ts_mv

      CREATE MATERIALIZED VIEW IF NOT EXISTS "clickobserve_service"."otel_traces_trace_id_ts_mv"
      TO "clickobserve_service"."otel_traces_trace_id_ts"
      AS SELECT
            TraceId,
            min(Timestamp) as Start,
            max(Timestamp) as End
         FROM "clickobserve_service"."otel_traces"
         WHERE TraceId != ''
         GROUP BY TraceId;
      

      otel_metrics_exponential_histogram

      CREATE TABLE IF NOT EXISTS "clickobserve_service"."otel_metrics_exponential_histogram" (
          `ResourceAttributes` Map(LowCardinality(String), String) CODEC(ZSTD(1)),
          `ResourceSchemaUrl` String CODEC(ZSTD(1)),
          `ScopeName` String CODEC(ZSTD(1)),
          `ScopeVersion` String CODEC(ZSTD(1)),
          `ScopeAttributes` Map(LowCardinality(String), String) CODEC(ZSTD(1)),
          `ScopeDroppedAttrCount` UInt32 CODEC(ZSTD(1)),
          `ScopeSchemaUrl` String CODEC(ZSTD(1)),
          `ServiceName` LowCardinality(String) CODEC(ZSTD(1)),
          `MetricName` String CODEC(ZSTD(1)),
          `MetricDescription` String CODEC(ZSTD(1)),
          `MetricUnit` String CODEC(ZSTD(1)),
          `Attributes` Map(LowCardinality(String), String) CODEC(ZSTD(1)),
          `StartTimeUnix` DateTime64(9) CODEC(Delta(8), ZSTD(1)),
          `TimeUnix` DateTime64(9) CODEC(Delta(8), ZSTD(1)),
          `Count` UInt64 CODEC(Delta(8), ZSTD(1)),
          `Sum` Float64 CODEC(ZSTD(1)),
          `Scale` Int32 CODEC(ZSTD(1)),
          `ZeroCount` UInt64 CODEC(ZSTD(1)),
          `PositiveOffset` Int32 CODEC(ZSTD(1)),
          `PositiveBucketCounts` Array(UInt64) CODEC(ZSTD(1)),
          `NegativeOffset` Int32 CODEC(ZSTD(1)),
          `NegativeBucketCounts` Array(UInt64) CODEC(ZSTD(1)),
          `Exemplars.FilteredAttributes` Array(Map(LowCardinality(String), String)) CODEC(ZSTD(1)),
          `Exemplars.TimeUnix` Array(DateTime64(9)) CODEC(ZSTD(1)),
          `Exemplars.Value` Array(Float64) CODEC(ZSTD(1)),
          `Exemplars.SpanId` Array(String) CODEC(ZSTD(1)),
          `Exemplars.TraceId` Array(String) CODEC(ZSTD(1)),
          `Flags` UInt32 CODEC(ZSTD(1)),
          `Min` Float64 CODEC(ZSTD(1)),
          `Max` Float64 CODEC(ZSTD(1)),
          `AggregationTemporality` Int32 CODEC(ZSTD(1)),
          INDEX idx_res_attr_key mapKeys(ResourceAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
          INDEX idx_res_attr_value mapValues(ResourceAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
          INDEX idx_scope_attr_key mapKeys(ScopeAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
          INDEX idx_scope_attr_value mapValues(ScopeAttributes) TYPE bloom_filter(0.01) GRANULARITY 1,
          INDEX idx_attr_key mapKeys(Attributes) TYPE bloom_filter(0.01) GRANULARITY 1,
          INDEX idx_attr_value mapValues(Attributes) TYPE bloom_filter(0.01) GRANULARITY 1
      ) ENGINE = SharedMergeTree()
      PARTITION BY toDate(TimeUnix)
      ORDER BY (ServiceName, MetricName, Attributes, toUnixTimestamp64Nano(TimeUnix))
      TTL toDateTime(TimeUnix) + toIntervalDay(180)
      SETTINGS index_granularity = 8192, ttl_only_drop_parts = 1;
      

    サンプルデータのインポート

    OpenTelemetry プロトコルに準拠したサンプルデータを、ログ、トレース、メトリクスのテーブルにインポートします。データは圧縮前で 200 MB 未満です。

    LLM へのインターネットアクセス

    LLM サービスはインターネット経由でのみアクセスできます。そのため、オブザーバビリティデータのためのインテリジェント AI アシスタントを使用するには、統合オブザーバビリティサービス ノードのインターネットアクセスを有効にする必要があります。このオプションを選択すると、現在のインスタンスが属する VPC を使用して、現在のアカウントにインターネット NAT ゲートウェイ、Elastic IP アドレス (EIP)、および SNAT ルールが自動的に作成されます。このゲートウェイにより、統合オブザーバビリティノードはインターネット経由で LLM サービスにアクセスできるようになります。

    • インターネット NAT ゲートウェイと EIP は独立して課金されます。NAT ゲートウェイの課金ルールについては、「NAT ゲートウェイの課金」をご参照ください。EIP の課金ルールについては、「課金の概要」をご参照ください。NAT ゲートウェイと EIP インスタンスはどちらも従量課金 (後払い) です。デフォルトの EIP 帯域幅は 5 Mbps です。

    • 現在の VPC に NAT ゲートウェイ インスタンスが既に存在する場合、システムは新しい NAT ゲートウェイを作成しません。代わりに、新しい EIP インスタンスを作成し、SNAT ルールを設定するだけです。

  5. サービスを有効化した後、ローカル IP アドレスがインスタンスのホワイトリストに含まれていない場合、自動的に追加するよう促すプロンプトが表示されます。

LLM へのインターネットアクセスの有効化

統合オブザーバビリティサービスの有効化時に LLM へのインターネットアクセスを選択しなかった場合、オブザーバビリティデータのためのインテリジェント AI アシスタントは正常に動作しません。サービスを有効化した後、次のいずれかの方法でこの機能を有効化できます。

ClickHouse コンソールでのワンクリック有効化

  1. ApsaraDB for ClickHouse コンソールにログインします。左上で、クラスターのリージョンを選択します。

  2. クラスターリスト ページで、対応するバージョンのインスタンスリストを選択し、対象のクラスター ID をクリックします。

  3. 左側メニューで、ワンストップ可観測 をクリックします。

  4. インターネットアクセスプロンプトバーで、[LLM へのインターネットアクセスを有効にする] をクリックします。

    統合オブザーバビリティサービスは、インターネットアクセスを有効化中の状態になります。このプロセスには約 1〜2 分かかります。この間、統合オブザーバビリティサービスはアクセスできなくなります。プロセスが完了すると、サービスに再びアクセスできるようになります。

プロセスが完了すると、統合オブザーバビリティページで、自動的に作成されたインターネット NAT ゲートウェイのインスタンス ID、EIP のインスタンス ID、および EIP のパブリック IP アドレスを表示できます。

手動設定

より柔軟なネットワーク設定が必要な場合は、EIP と NAT ゲートウェイを手動で作成できます。

ステップ 1:Elastic IP アドレス (EIP) の作成

  1. Elastic IP Addressコンソールにログインします。
  2. ClickHouse クラスターと同じリージョンを選択し、Elastic IP アドレス インスタンスを作成します。

ステップ 2:インターネット NAT ゲートウェイの作成と EIP のバインド

  1. NAT ゲートウェイ - インターネット NAT ゲートウェイ購入ページに移動します。

  2. ClickHouse クラスターが属する VPC にインターネット NAT ゲートウェイ インスタンスが存在しない場合は、[インターネット NAT ゲートウェイの作成] をクリックします。ClickHouse クラスターと同じリージョンと VPC を選択し、ステップ 1 で作成した EIP インスタンスを選択して EIP をバインドします。

  3. ClickHouse クラスターが属する VPC にインターネット NAT ゲートウェイ インスタンスが既に存在する場合は、インターネット NAT ゲートウェイコンソールのインスタンスリストページで、[その他] > [Elastic IP アドレスのバインド] をクリックします。ステップ 1 で作成した EIP を選択して EIP をバインドします。

ステップ 3:SNAT エントリの作成

  1. インターネット NAT ゲートウェイページに移動します。対象の NAT ゲートウェイ インスタンスの詳細ページに移動します。

  2. [SNAT 管理] タブをクリックし、[SNAT エントリの作成] をクリックします。

  3. SNAT エントリの粒度として、[ECS/ENI 粒度] を選択します。

  4. ECS/ENI オプションで、rds-eni-<ClickHouse インスタンス ID>-webui という名前のセカンダリ ENI を選択します。

  5. ステップ 1 で作成した EIP を Elastic IP アドレスとして選択します。

  6. [OK] をクリックします。SNAT エントリが作成されるのを待ちます。

パブリックネットワークアクセスリソースの解放

重要

ビジネスセキュリティ上の理由から、ClickHouse インスタンスを解放しても、パブリックネットワークアクセスのために作成された NAT ゲートウェイと EIP インスタンスは自動的に削除されません。インスタンスを解放した後、それぞれのコンソールでこれらのリソースを手動で解放する必要があります。

リソースの解放:

  • ワンクリックで有効化されたパブリックネットワークリソースの場合

    統合オブザーバビリティサービスによって自動的に作成された NAT ゲートウェイと EIP リソースは、タグ createdby:<インスタンス ID> を使用してフィルタリングして削除できます。

  • 手動で作成されたパブリックネットワークリソースの場合

    ビジネスでの使用状況に基づいて削除するかどうかを判断する必要があります。

使用方法

メインページ

  1. インスタンス詳細ページの左側メニューで、ワンストップ可観測 をクリックします。ページ上部のプロンプトに従って、サービスのメインページに移動します。

  2. ユーザー名とパスワードを入力してメインページにログインします。データベースアカウントを作成するには、「Enterprise Edition のデータベースアカウントの管理」または「Community-compatible Edition のデータベースアカウントの管理」をご参照ください。

  3. ログイン後、メインページ (検索ページ) にリダイレクトされます。ページの上部でデータソースを選択し、時間範囲を設定し、フィルター条件を指定してデータをクエリできます。

    image

    • [フィルター] エリアでフィルター条件を選択すると、条件に一致するログが自動的にフィルタリングされます。

    • image をクリックして、現在のページで該当ログの情報を表示します。

    • ログの行をクリックすると、完全な属性、関連トレースの期間情報、ログのコンテキスト情報など、その詳細情報を表示できます。

オブザーバビリティデータのためのインテリジェント AI アシスタント

オブザーバビリティデータのためのインテリジェント AI アシスタントは、OTEL オブザーバビリティデータ テーブルのデータ分析を支援します。インスタンス内の OTEL オブザーバビリティデータに関連するデータベースとテーブル情報を自動的に識別し、ビジネス要件に基づいてクエリ文を自動的に構築してオブザーバビリティデータを取得し、その後、自動的に分析して診断結果を返します。主な応用シナリオには、ビジネストレンド分析、データ量分析、RCA 根本原因分析が含まれます。

前提条件

LLM へのインターネットアクセスが有効になっていること。

使用方法

  1. 統合オブザーバビリティのメインページで、左側メニューにある [AI NoteBook] ボタンをクリックします。

  2. AI アシスタントのチャットウィンドウで、分析したい質問を入力します。AI アシスタントは自動的にオブザーバビリティデータをクエリし、分析結果を返します。

一般的なシナリオ

(1) ビジネスログのエラー率の特定

クエリ例:

  • 過去 1 時間の OpenClaw プログラムに異常があったかどうかを分析してください

  • 過去 10 分間の管理トレースデータで、どのコンポーネントのエラー率が高かったかを分析してください

診断結果

Conclusion
Based on sampling analysis of the clickobserve_service.otel_traces table from 2026-05-06 19:50:00 to 2026-05-06 20:00:00:

Error Rate Statistics
- The overall error rate is approximately 0.32% (based on sampling data from 7 time windows of 0.5 seconds each, totaling 248,077 spans)
- Total error spans: 919
- Normal spans (OK + UNSET): 207,150

StatusCode Distribution
StatusCode    Count       Ratio     Remarks
UNSET         139,911     74.7%     -
OK            66,247      23.08%    -
ERROR         919         0.32%     -

Evidence
- View artifacts from /artifacts/sessions/c-b859bd2-3942-4d85-b636-51dae0d18ae/sql_results.json

Limitations
- Sampling bias: Due to the ClickHouse max_rows_to_read limit (200,000 rows), not all data within the 10-minute window can be covered, and the actual sample may be biased
- Time window representativeness: Sampling points are distributed between 19:50 ~ 20:00, and intervals with large data volumes may be missed
- Margin of error: The actual error rate may fluctuate between 0.2% and 0.5%

Next Steps (for more precise analysis)
- For precise error rates, you may need to adjust the sampling ratio and quantity
- If interested in anomalies, you can query the StatusMessage or Events fields for error details
- Drill down by SpanName or ServiceName to identify which services are contributing to the errors
(2) 根本原因診断

クエリ例:

  • 過去 1 時間の管理コンポーネントのログにエラーがあったかどうかを分析し、根本原因を分析してください

  • ゲートウェイリクエストの 1 つが失敗したのはなぜですか? requestId/traceId = ea7d2925-3422-4920-9ab1-b22dd3d85b2f。詳細な原因を分析してください。

診断結果

Error Data Analysis Conclusion
Based on sampling analysis of the clickobserve_service.otel_traces table from 2026-05-06 19:50:00 to 20:00:00, the following are the error sampling data and error analysis results.

1. Error Type Distribution
HTTP Code    Error Count  Ratio    Type                 Description
404            81         64%     Resource not found        -
500            19         10%     Internal server error     -
503            3          2%      Service unavailable         -
206            1          2%      Partial content       Can be considered edge case in 10 million requests

2. Typical Error Case Analysis

Case 1: 404 Not Found — Resource file path does not exist
- TraceId: b1b97380c855083a23ec76ace14e53be
- SpanName: GET
- Request path: http://dbaas-meta-api-myb-bank-cloud.ipa.internal.myb.rds.alibyncs.com/api/v1.0/clusterInstances/34631706 etc.
- Error cause: Target resource ID 34631706 does not exist on the target server. All associated spans under this TraceId show 404, confirming service deployment and routing configuration issues
- Evidence link: /artifacts/sessions/c-b859bd2-3942-4d85-b636-51dae0d18ae/sql_results.json line 22

Case 2: 503 Service Unavailable — Service temporarily unavailable
- TraceId: b1b97380c855083a23ec76ace14e53bf
- SpanName: GET / POST
- Request path: http://dbaas-meta-api-myb-minirds.ipa.internal.myb.rds.alibyncs.com/api/v1.0/replicatSets/3083517606/myfd
- Evidence link: /artifacts/sessions/c-b859bd2-3942-4d85-b636-51dae0d18ae/sql_results.json line 22

Case 3: STS Service Call Error
- SpanName: POST https://sts.cn-hangzhou.null/
- Error type: .null domain, indicating domain resolution error or DNS resolution failure
- STS service may be missing domain configuration
- Evidence link: /artifacts/sessions/c-b859bd2-3942-4d85-b636-51dae0d18ae/sql_results.json line 10

Case 4: Basic Error Type
...

セッション管理

AI アシスタントは、複数のセッションの作成と管理に対応しています。次の操作が可能です:

  • セッションの作成:サービスページで、上部の [+] ボタンをクリックし、セッション名を入力して新しいセッションを作成します。

  • セッションの削除:サービスページで、上部の削除ボタンをクリックして現在のセッションを削除します。

  • セッションの名前変更:サービスページで、上部の編集ボタンをクリックし、新しい名前を入力して Enter キーを押して確定します。

出力モードの切り替え

AI アシスタントは 2 つの出力モードに対応しています。チャットウィンドウの切り替えボタンで切り替えられます:

  • ストリーミング出力 (デフォルト):分析結果をリアルタイムで段階的に表示し、より速い応答を実現します。

  • 標準出力:分析が完了するのを待ってから、完全な結果を一度に表示します。

カスタムダッシュボード

このサービスは、直接使用できるプリセットダッシュボードを提供します。左側メニューで [プリセット] > [サービス] をクリックして表示できます。また、カスタムダッシュボードを作成して、関心のあるメトリクスを集約し、同じレポートに表示することもできます。

  1. 左側メニューで、[ダッシュボードの作成] をクリックします。

  2. [新しいタイルの追加] をクリックします。

    image

  3. データソースとメトリクスを設定し、[保存] をクリックします。

    image

サービス設定

サービスの有効化時に テーブルを自動作成する を選択した場合、対応するテーブルのサービス設定が自動的に構成されます。ニーズに応じて、他のテーブルをデータソースとして設定することもできます。

  1. 左側メニューで、[チーム設定] をクリックします。

  2. [ソース] エリアでデータソースを設定します。この設定では、ログ、メトリクス、トレースのデータがどのテーブルから取得されるか、および列のマッピングを定義します。次のデータ設定を参照してください:

    ログ

    image

    メトリクス

    image

    トレース

    image

  3. [接続] エリアで接続設定を構成します。この設定では、オブザーバビリティサービスと ApsaraDB for ClickHouse インスタンス間の接続を設定します。現在のインスタンスへのデフォルトの接続設定が作成されます。[ホスト] は ApsaraDB for ClickHouse インスタンスのエンドポイントを示します。VPC アドレスのみがサポートされます。インスタンス エンドポイントを設定した後にインスタンス コンソールでエンドポイントアドレスを変更した場合は、再設定する必要があります。

  4. [ClickHouse クライアント設定] エリアで、ApsaraDB for ClickHouse インスタンス上のオブザーバビリティサービスのクエリ パラメーターを設定します。

ユーザー設定

左側メニューの下部で、ユーザー名をクリックし、[ユーザー設定] を選択してユーザー設定を行います。

関連ドキュメント