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パフォーマンスの問題を残りのアプリケーション・スタックとともに簡単に分析できます。