24 データベースの可観測性とOpenTelemetry

ADBSネイティブ可観測性(OpenTelemetry)は、ネイティブのデータベース内のOpenTelemetryトレースおよびロギングを提供します。

Oracle AI Databaseがシステム上で実行されている多くの相互に依存するアプリケーションの1つである大規模なアプリケーション・シナリオでは、OpenTelemetryオブジェクトとして標準化されたトレースおよびログ情報をエクスポートすることで、システム分析を改善できます。

Oracle AI Databaseは、DBMS_OBSERVABILITY PL/SQLプロシージャでネイティブな可観測性を提供します。これにより、分散トレースおよびメトリックが有効になります。

トレース出力OpenTelemetry (OTel)は、Oracle AI Databaseログにまたがり、相互に関連付けられます。これにより、システム上のすべてのアプリケーションからOTel情報を収集する外部ツールとの統合された分析が可能になります。

Oracle AI Databaseのネイティブ可観測性は、データベース・アクティビティをインメモリーで収集して、パフォーマンスのオーバーヘッドを最小限に抑え、ディスクおよびOTelエンドポイントを含む構成済の宛先にトレース・データを非同期でエクスポートします。

サービスの管理および微調整は、DBMS_OBSERVABILITYパッケージを介して実行されます。このページでは、次の処理を実行できます。

  • 可観測性サービスおよびオプションの有効化または無効化
  • トレースおよびログをOpenTelemetryコレクタにエクスポートするためのエンドポイントの構成
  • 外部エンドポイントとのセキュアな通信のための資格証明の管理
  • 現在のサービス・ステータスおよびエンドポイント構成の表示

基本構成の例:

-- Enable observability service
EXEC dbms_observability.enable_service;

-- Disable a service option
EXEC dbms_observability.disable_service_option(option_id => dbms_observability.show_extra_metadata);

-- Configure a credential
EXEC dbms_observability.create_credential(credential_name => 'my_trace_cred', username => 'usr', password => 'welcome1');

-- Configure an endpoint
EXEC dbms_observability.add_endpoint(endpoint_type => dbms_observability.otel_traces, endpoint => 'https://example.com:1234/v1/traces', credential_name => 'my_trace_cred' );

-- View current service status
EXEC dbms_observability.show_pdb_service_status(pdb_id => NULL);

このコマンドの最終的な実装は次のようになります:


set serveroutput on;
declare
  config VARCHAR2;
begin
  select dbms_observability.show_service_status(info_level => dbms_observability.runtime_info) into config;
  dbms_output.put_line(config);
end;
/

Oracle AI Databaseのトレースおよびログ・データはネイティブに相互に関連付けられてエクスポートされるため、SQLパフォーマンスの問題を残りのアプリケーション・スタックとともに簡単に分析できます。