SQL 🔗
注意
Smart Agent monitors are being deprecated. To collect SQL metrics use the native OpenTelemetry SQLクエリレシーバー component.
SQLモニターは、データベース上のSQLクエリからデータベースの使用状況メトリクスを収集します。Kubernetes、Windows、Linuxで利用できます。
設定 🔗
Smart Agent モニターとCollector のインテグレーションを使用するには、以下の手順に従います:
Smart Agent レシーバーを設定ファイルに含めます。
レシーバーセクションおよびパイプラインセクションの両方で、Collector 構成にモニタータイプを追加します。
Collector でSmart Agent モニターを使用する の方法を参照してください。
Smart Agent レシーバー の設定方法を参照してください。
一般的な設定オプションのリストについては、モニターの共通設定 を参照してください。
Collectorの詳細は、はじめに:Collectorを理解して使用する を参照してください。
例 🔗
このインテグレーションを有効にするには、Collector構成に以下を追加します:
receivers:
smartagent/sql:
type: sql
... # Additional config
次に、設定ファイルの service.pipelines.metrics.receivers
セクションにモニターを追加します:
service:
pipelines:
metrics:
receivers: [smartagent/sql]
コンフィギュレーション設定 🔗
以下の表は、このモニターの設定オプションを示しています:
オプション |
必須 |
タイプ |
説明 |
---|---|---|---|
|
はい |
|
データポイントを生成するクエリのリスト。 |
|
いいえ |
|
SQLインスタンスのホストまたはアドレス。 |
|
いいえ |
|
SQL インスタンスのポート。デフォルト値は |
|
いいえ |
|
|
|
いいえ |
|
|
|
いいえ |
|
|
|
いいえ |
|
(デフォルト: |
ネストされた queries
コンフィギュレーション・オブジェクトには以下のフィールドがあります:
オプション |
必須 |
タイプ |
説明 |
---|---|---|---|
|
はい |
|
データベースから1つ以上の行を選択するSQLクエリ・テキスト。 |
|
いいえ |
|
|
|
いいえ |
|
クエリから生成されたメトリクス。 |
|
いいえ |
|
|
ネストされた metrics
コンフィギュレーション・オブジェクトには以下のフィールドがあります:
オプション |
必須 |
タイプ |
説明 |
---|---|---|---|
|
はい |
|
|
|
はい |
|
データポイントの値を保持する列名。 |
|
いいえ |
|
|
|
いいえ |
|
|
|
いいえ |
|
|
サポート対象のドライバ 🔗
使用するデータベース・ドライバの名前を含む dbDriver
オプションを指定する必要があります。これらの名前は、エージェントで使用される Golang SQL ドライバの名前と同じです。モニターは、指定したドライバに従って connectionString
をフォーマットします。
注釈
使用するドライバに応じて、正しい接続文字列構文を使用してください。例えば、mysql
ドライバーを使用する場合は、mysql
ドライバーの接続文字列構文を使用する必要があります。
これは現在サポートされているドライバのリストです:
hana
sqlserver
mysql
postgres
pq
snowflake
パラメータ化された接続文字列 🔗
インテグレーションは、connectionString
の値を、変数 host
と port
と params
オプションのすべてのパラメータからなるコンテキストを持つ 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のパフォーマンスと使用状況のメトリクスを収集するようにエージェントを構成するには、以下の手順を実行します:
sql
モニターレポからpkg/sql/snowflake-metrics.yaml
ファイルをagent.yaml
ファイルと同じ場所にコピーします。例えば、/etc/splunk
。最新バージョンのsnowflake-metrics.yaml
を GitHub レポで見つけてください。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
ディメンションがあります。ディメンション値は、country
と status
の組み合わせに属する顧客の数です。また、複数の metrics
アイテムを指定して、1つのクエリから複数のメトリクスを生成することもできます。
メトリクス式の使用 🔗
列をメトリクス値やディメンションにマッピングするよりも複雑なロジックを実行する必要がある場合は、個々のメトリクス構成で利用可能な datapointExpressions
オプションを使用します。expr
式言語を使用して、個々の行からデータポイントを導出する、より洗練されたロジックを作成します。これらの式は、式のコンテキストで使用できる GAUGE
または CUMULATIVE
ヘルパー関数によって作成されたデータポイントに対して評価される必要があります。特定の行のデータポイントを生成する必要がない場合は、式を nil
に評価させることもできます。
GAUGE
、CUMULATIVE
の両関数には以下のシグネチャーがあります:
( metricName
、dimensions
、value
)
metricName
:文字列でなければなりませんdimensions
:文字列のキーと値のマップでなければならず、またvalue
:数値でなければなりません。
行の各列は、式のコンテキストで同じ名前の変数にマップされます。例えば、SQLクエリの結果に name
という列がある場合、 name
という変数を式で使用することができます。式の中では、文字列値をシングルクォート ( ''
) で囲みます。
メトリクス 🔗
このインテグレーションはメトリクススを生成しません。
トラブルシューティング 🔗
Splunk Observability Cloudをご利用のお客様で、Splunk Observability Cloudでデータを確認できない場合は、以下の方法でサポートを受けることができます。
Splunk Observability Cloudをご利用のお客様
Submit a case in the Splunk Support Portal .
Contact Splunk Support .
見込み客および無料トライアルユーザー様
Splunk Answers のコミュニティサポートで質問し、回答を得る
Splunk #observability ユーザーグループの Slack チャンネルに参加して、世界中の顧客、パートナー、Splunk 社員とのコミュニケーションを図る。参加するには、Get Started with Splunk Community マニュアルの チャットグループ を参照してください。