Docs » Splunk Observability Cloud でサポートされているインテグレーション » データベースのアプリケーション・レシーバーを設定する » SQL

SQL 🔗

注意

Smart Agent モニターは非推奨にされています。SQL メトリクスを収集するには、ネイティブの OpenTelemetry SQLクエリレシーバー コンポーネントを使用してください。

SQLモニターは、データベース上のSQLクエリからデータベースの使用状況メトリクスを収集します。Kubernetes、Windows、Linuxで利用できます。

設定 🔗

Smart Agent モニターとCollector のインテグレーションを使用するには、以下の手順に従います:

  1. Smart Agent レシーバーを設定ファイルに含めます。

  2. レシーバーセクションおよびパイプラインセクションの両方で、Collector 構成にモニタータイプを追加します。

🔗

このインテグレーションを有効にするには、Collector構成に以下を追加します:

receivers:
  smartagent/sql:
    type: sql
    ...  # Additional config

次に、設定ファイルの service.pipelines.metrics.receivers セクションにモニターを追加します:

service:
  pipelines:
    metrics:
      receivers: [smartagent/sql]

コンフィギュレーション設定 🔗

以下の表は、このモニターの設定オプションを示しています:

オプション

必須

タイプ

説明

queries

はい

list of objects (see below)

データポイントを生成するクエリのリスト。

host

いいえ

string

SQLインスタンスのホストまたはアドレス。

port

いいえ

integer

SQL インスタンスのポート。デフォルト値は 0 です。

params

いいえ

map of strings

キーと値のペアの形式で、置き換え可能なパラメータ。

システムは、Go テンプレート構文を使用して、指定されたキーの値を connectionString に挿入します。例えば、{{.key}}

dbDriver

いいえ

string

使用するデータベース・ドライバ。有効な値は postgres

mysql sqlserver および snowflake です。

connectionString

いいえ

string

データベースへの接続に使用される接続文字列と置換可能なパラメータ。

詳しくは、Go pq パッケージの接続文字列パラメータのリストを参照してください。

logQueries

いいえ

bool

(デフォルト: false ) true の場合、クエリ結果を infolevel で記録します。

ネストされた queries コンフィギュレーション・オブジェクトには以下のフィールドがあります:

オプション

必須

タイプ

説明

query

はい

string

データベースから1つ以上の行を選択するSQLクエリ・テキスト。

params

いいえ

list of values

クエリ文字列のプレースホルダを置き換えるオプションの

パラメータ。

metrics

いいえ

list of objects (see below)

クエリから生成されたメトリクス。

datapointExpressions

いいえ

list of strings

各行をメトリクスのセットに変換する式のセット。

これらの式はそれぞれ、クエリ結果セットの各行に対して実行され、行ごとに複数のデータポイントを生成することができます。各式は、1つのデータポイントまたはnilとして評価されなければなりません。

ネストされた metrics コンフィギュレーション・オブジェクトには以下のフィールドがあります:

オプション

必須

タイプ

説明

metricName

はい

string

Splunk Observability Cloud で表示されるメトリクスの

名前。.

valueColumn

はい

string

データポイントの値を保持する列名。

dimensionColumns

いいえ

list of strings

データポイントのディメンションを構成する列の

名前。

isCumulative

いいえ

bool

値が累積カウンター(true)かゲージ

(false) か。この値を間違って設定し、メトリクス名の最初のデータ ポイントを間違ったタイプで送信した場合、最初に見たタイプに基づいてシステムで設定されるため、手動でタイプを変更する必要があります。デフォルト値は false です。

dimensionPropertyColumns

いいえ

map of lists

ディメンションと対応するプロパティのアタッチに使用する列との間の

マッピング。

サポート対象のドライバ 🔗

使用するデータベース・ドライバの名前を含む dbDriver オプションを指定する必要があります。これらの名前は、エージェントで使用される Golang SQL ドライバの名前と同じです。モニターは、指定したドライバに従って connectionString をフォーマットします。

注釈

使用するドライバに応じて、正しい接続文字列構文を使用してください。例えば、mysql ドライバーを使用する場合は、mysql ドライバーの接続文字列構文を使用する必要があります。

これは現在サポートされているドライバのリストです:

  • hana

  • sqlserver

  • mysql

  • postgres

  • pq

  • snowflake

パラメータ化された接続文字列 🔗

インテグレーションは、connectionString の値を、変数 hostportparams オプションのすべてのパラメータからなるコンテキストを持つ Golang テンプレートとして扱います。変数をテンプレートに追加するには、Golangの {{.varname}} テンプレート構文を使います。

次の例を参照してください:

smartagent/sql:
  type: sql
  host: localhost
  port: 1433
  dbDriver: sqlserver
  connectionString: 'Server=127.0.0.1;Database=WideWorldImporters;User Id=sa;Password=123456;'
  queries:
    - query: 'SELECT COUNT(*) as count FROM Sales.Orders'
      metrics:
        - metricName: "orders"
          valueColumn: "count"

Snowflakeのパフォーマンスと使用状況のメトリクスを収集する 🔗

Snowflakeのパフォーマンスと使用状況のメトリクスを収集するようにエージェントを構成するには、以下の手順を実行します:

  1. sql モニターレポから pkg/sql/snowflake-metrics.yaml ファイルを agent.yaml ファイルと同じ場所にコピーします。例えば、/etc/splunk 。最新バージョンの snowflake-metrics.yaml を GitHub レポで見つけてください。

  2. SQLモニターを以下のように設定します:

receivers:
  smartagent/sql:
    type: sql
    intervalSeconds: 3600
    dbDriver: snowflake
    params:
      account: "account.region"
      database: "SNOWFLAKE"
      schema: "ACCOUNT_USAGE"
      role: "ACCOUNTADMIN"
      user: "user"
      password: "password"
    connectionString: "{{.user}}:{{.password}}@{{.account}}/{{.database}}/{{.schema}}?role={{.role}}"
    queries:
      {"#from": "/etc/signalfx/snowflake-metrics.yaml"}

また、snowflake-metrics.yaml の内容を queries の下にある agent.yaml にコピーすることもできます。snowflake-metrics.yaml を編集して、監視したいメトリクスだけを含めます。

モニターの使用 🔗

次の customers データベーステーブルを考えてみます:

id

name

country

status

1

Bill

USA

active

2

Mary

USA

inactive

3

Joe

USA

active

4

Elizabeth

Germany

active

以下のモニター設定を使用して、国別のアクティブ・ユーザー数と顧客数のメトリクスを生成します:

receivers:
  smartagent/sql:
    type: sql
    host: localhost
    port: 5432
    dbDriver: postgres
    params:
      user: "${env:SQL_USERNAME}"
      password: "${env:SQL_PASSWORD}"
    # The `host` and `port` values shown in this example (also provided through autodiscovery) are interpolated
    # to the connection string as appropriate for the database driver.
    # Also, the values from the `params` configuration option above can be
    # interpolated.
    connectionString: 'host={{.host}} port={{.port}} dbname=main user={{.user}} password={{.password}} sslmode=disable'
    queries:
      - query: 'SELECT COUNT(*) as count, country, status FROM customers GROUP BY country, status;'
        metrics:
          - metricName: "customers"
            valueColumn: "count"
            dimensionColumns: ["country", "status"]

この構成を使用すると、メトリクス名 customers を持つ一連のMTSが得られます。各 MTS には、county および status ディメンションがあります。ディメンション値は、countrystatus の組み合わせに属する顧客の数です。また、複数の metrics アイテムを指定して、1つのクエリから複数のメトリクスを生成することもできます。

メトリクス式の使用 🔗

If you need to do more complex logic than mapping columns to metric values and dimensions, use the datapointExpressions option that’s available for individual metric configurations. Create more sophisticated logic to derive data points from individual rows by using the expr expression language. These expressions must evaluate to data points created by the GAUGE or CUMULATIVE helper functions available in the expression’s context. You can also have the expression evaluate to nil if you don’t need to generate a data point for a particular row.

GAUGECUMULATIVE の両関数には以下のシグネチャーがあります:

( metricNamedimensionsvalue )

  • metricName:文字列でなければなりません

  • dimensions:文字列のキーと値のマップでなければならず、また

  • value:数値でなければなりません。

行の各列は、式のコンテキストで同じ名前の変数にマップされます。例えば、SQLクエリの結果に name という列がある場合、 name という変数を式で使用することができます。式の中では、文字列値をシングルクォート ( '' ) で囲みます。

メトリクス 🔗

このインテグレーションはメトリクススを生成しません。

トラブルシューティング 🔗

Splunk Observability Cloudをご利用のお客様で、Splunk Observability Cloudでデータを確認できない場合は、以下の方法でサポートを受けることができます。

Splunk Observability Cloudをご利用のお客様

見込み客および無料トライアルユーザー様

  • Splunk Answers のコミュニティサポートで質問し、回答を得る

  • Splunk #observability ユーザーグループの Slack チャンネルに参加して、世界中の顧客、パートナー、Splunk 社員とのコミュニケーションを図る。参加するには、Get Started with Splunk Community マニュアルの チャットグループ を参照してください。

このページは 2025年02月11日 に最終更新されました。