Simple Log Serviceは、スケジュールされたSQL機能を提供します。 この機能を使用して、スケジュールされた時間にデータを分析し、ストレージ用にデータを集計できます。 この機能を使用して、データをプロジェクトおよびフィルタリングすることもできます。 Simple Log Serviceを使用すると、スケジュールされたSQLジョブを設定することで、ソースMetricstoreのデータを処理し、処理したデータを宛先Metricstoreに保存できます。
前提条件
データはソースMetricstoreに収集されます。 詳細については、「ホストからのメトリックデータの収集」をご参照ください。
宛先Metricstoreが作成されます。 詳細については、「Metricstoreの作成」をご参照ください。
手順
スケジュールされたSQL機能はパブリックプレビューです。 この機能を有効にすると、Dedicated SQLによって消費されたコンピューティングリソースに対してのみ課金されます。 詳細については、「機能課金の課金項目」をご参照ください。
にログインします。Simple Log Serviceコンソール.
[プロジェクト] セクションで、管理するプロジェクトをクリックします。
On the タブで、管理するMetricstoreをクリックします。
クエリおよび分析操作を実行します。
ページの右上隅にあるをクリックします。15分 (相対)クエリの時間範囲を指定します。
PromQLステートメントを入力し、今すぐ実行.
詳細については、「メトリックデータの照会と分析」をご参照ください。
説明この手順では、スケジュールされたSQLジョブを作成する前にデータをプレビューできます。 入力したクエリステートメントが有効かどうか、およびクエリおよび分析結果にデータが含まれているかどうかを確認できます。
選択 .
スケジュールされたSQLジョブを作成します。
[コンピューティング設定] ステップで、パラメーターを設定し、[次へ] をクリックします。 下表にパラメーターを示します。
パラメーター
説明
ジョブ名
スケジュールされたSQLジョブの名前。
表示名
スケジュールされたSQLジョブの表示名。
ジョブの説明
スケジュールされたSQLジョブの説明。
リソースプール
データ分析に使用されるリソースプール。 Simple Log Serviceは、拡張タイプのリソースプールを提供します。
拡張タイプのリソースプールは、Dedicated SQLのコンピューティング機能を利用して、同時分析要件を満たします。 スケジュールされたSQLとコンソールのSQL分析操作の間のリソースを分離します。 SQL分析操作によって消費されたCPU時間に基づいて、拡張タイプのリソースプールに対して課金されます。 詳細については、「Dedicated SQLの有効化」をご参照ください。
書き込みモード
[MetricstoreからMetricstoreへのデータのインポート] を選択します。 Scheduled SQLジョブは、ソースMetricstoreのデータを処理し、処理したデータを宛先Metricstoreに保存します。
SQLコード
クエリ 文。 デフォルトでは、ステップ4で入力したステートメントが表示されます。 このパラメータに対して提供されるプレビュー操作は、ステップ4におけるプレビュー操作と同じ効果を有する。 [プレビュー] をクリックして、クエリステートメントが有効かどうか、およびクエリおよび分析結果にデータが含まれているかどうかを確認できます。
スケジュールされたSQLジョブが実行されると、Simple Log Serviceはクエリステートメントを実行してデータを分析します。
重要promql_query関数を使用して、現在の時点のメトリックデータを宛先Metricstoreにインポートすることを推奨します。 promql_query_range関数を使用すると、大量のデータが拡張されます。
SQL設定
結果メトリック名
分析用に選択したメトリックの新しい名前。 メトリックの名前を変更する場合は、このパラメーターでメトリックの新しい名前を指定できます。 詳細については、「メトリック」をご参照ください。
重要分析用に単一のメトリックを選択した場合は、このパラメータを設定してメトリックの名前を変更することを推奨します。
分析に複数のメトリックを選択し、このパラメーターを設定すると、すべてのメトリックの名前が指定した名前に変更されます。
Rehash
ハッシュを有効にするかどうかを指定します。 Rehashをオンにすると、Hash Columnパラメーターを設定して、同じラベルのデータを1つのシャードに書き込むことができます。 これにより、データの局所性とクエリの効率が向上します。
ハッシュ列パラメーターの有効な値は、メトリクスの既存のラベル情報によって異なります。 たとえば、メトリックの既存のラベル情報が
{"alert_id":"alert-1608815762-545495" 、"alert_name":"Alert clearance disabled" 、"status":"inactive"}
の場合、Hash Columnパラメーターの有効な値はalert_id、alert_name、statusです。 ハッシュ列をstatusに設定した場合、statusの値が同じメトリックが同じシャードに書き込まれます。追加ラベル
メトリックの属性を識別するために使用される静的ラベル。 各ラベルはキーと値のペアです。
たとえば、label_keyをappに、label_valueをingress-nginxに設定できます。
ターゲット
対象リージョン
ターゲットプロジェクトが存在するリージョン。
対象プロジェクト
クエリ文の結果を格納するターゲットプロジェクトの名前。
ターゲットストア
クエリ文の結果を格納する宛先Metricstoreの名前。
書き込み許可
スケジュールされたSQLジョブが宛先Metricstoreにデータを書き込むことを許可するために使用されるメソッド。 有効な値:
デフォルトのロール: スケジュールされたSQLジョブは、分析結果を宛先Metricstoreに書き込むためにAliyunLogETLRoleシステムロールを引き受けます。
重要スケジュールされたSQLジョブを初めて作成するときは、承認が必要であり、ターゲットプロジェクトが属するAlibaba Cloudアカウントを使用して完了する必要があります。 後続のスケジュールされたSQLジョブを作成するときに、承認を実行する必要はありません。
カスタムロール: Scheduled SQLジョブは、分析結果を宛先Metricstoreに書き込むためのカスタムロールを引き受けます。
宛先Metricstoreにデータを書き込む権限をカスタムロールに付与する必要があります。 次に、[ロールARN] フィールドにカスタムロールのAlibaba Cloudリソース名 (ARN) を入力します。 ARNの取得方法については、ビジネスシナリオに基づいて次のいずれかのトピックを参照してください。
ソースMetricstoreとターゲットMetricstoreが同じAlibaba Cloudアカウントに属している場合、「ステップ2: RAMロールにターゲットLogstoreへのデータ書き込み権限を付与」の手順に従ってARNを取得します。
ソースMetricstoreとターゲットMetricstoreが異なるAlibaba Cloudアカウントに属している場合、「RAMロールBにターゲットLogstoreへのデータ書き込み権限を付与」に記載されている手順に従ってARNを取得します。
SQL実行権限付与
ソースMetricstoreからデータを読み取り、現在のプロジェクトでクエリ文を使用してデータを分析するために、スケジュールされたSQLジョブを許可するために使用されるメソッド。 有効な値:
デフォルトのロール: スケジュールされたSQLジョブは、AliyunLogETLRoleシステムロールを引き受けて、必要な操作を実行します。
重要スケジュールされたSQLジョブを初めて作成するときは、承認が必要であり、ターゲットプロジェクトが属するAlibaba Cloudアカウントを使用して完了する必要があります。 後続のスケジュールされたSQLジョブを作成するときに、承認を実行する必要はありません。
カスタムロール: スケジュールされたSQLジョブは、必要な操作を実行するカスタムロールを引き受けます。
カスタムロールに必要な権限を付与する必要があります。 次に、[ロールARN] フィールドにカスタムロールのARNを入力します。 詳細については、「手順1: RAMロールAにソースLogstoreのログデータを分析する権限を付与する」をご参照ください。
[スケジューリング設定] ステップで、次のパラメーターを設定し、[OK] をクリックします。
パラメーター
説明
スケジューリング間隔の指定
スケジュールされたSQLジョブがスケジュールされる頻度。 インスタンスは、スケジュールされたSQLジョブがスケジュールされるたびに生成されます。 このパラメーターは、各インスタンスのスケジュール時間を決定します。 有効な値:
- 毎時: スケジュールされたSQLタスクは1時間ごとにスケジュールされます。
- 毎日: スケジュールされたSQLタスクは、毎日一定の時間にスケジュールされます。
- 毎週: スケジュールされたSQLタスクは、毎週の一定日の一定時間にスケジュールされます。
- 固定間隔: スケジュールされたSQLタスクは、固定間隔でスケジュールされます。
- Cron: スケジュールされたSQLタスクは、cron式を使用して指定された間隔でスケジュールされます。
cron式を使用する場合、指定された間隔は24時間クロックに基づいて分に正確になります。 たとえば、式0 0/1 * * * は、スケジュールされたSQLタスクが00:00から1時間ごとにスケジュールされることを示します。
タイムゾーンを指定する必要がある場合は、[Cron] を選択します。 共通タイムゾーンのリストについては、「タイムゾーン」をご参照ください。
スケジューリング時間範囲
スケジュールされたSQLジョブがスケジュールされる時間範囲。 有効な値:
- 指定された時刻に開始: スケジュールされたSQLタスクが最初にスケジュールされる時刻を指定します。
- 指定期間内: スケジュールされたSQLタスクがスケジュールされる時間範囲を指定します。
説明時間範囲を指定した場合、スケジュール済みSQLジョブのインスタンスはその時間範囲内でのみ実行できます。 終了時間が経過すると、スケジュールされたSQLジョブはインスタンスを生成しなくなります。
スケジューリング時間範囲は
__Time__
フィールドです。 詳細については、「予約済みフィールド」をご参照ください。
SQLタイムウィンドウ
スケジュールされたSQLジョブの実行時に分析されるログの時間ウィンドウ。 このパラメーターは、Scheduling Time Rangeパラメーターと一緒に設定する必要があります。 このパラメーターで指定する期間は、[スケジューリング間隔の指定] で指定した期間の最大5倍です。 SQLタイムウィンドウの開始時間と終了時間は24時間以内である必要があります。 詳細については、「Time expression構文」をご参照ください。
たとえば、[スケジューリング間隔の指定] は [固定間隔10分] に設定され、[開始時間] は2021-04-01: 00:00に設定され、[遅延タスク] は30秒に設定され、[SQL時間ウィンドウ] は [@ m-10m,@ m) に設定されます。 この例では、スケジュールされたSQLジョブの最初のインスタンスが00:00:30に生成され、[23:50:00 ~ 00:00:00) の時間範囲に含まれるログを分析します。 詳細については、「シナリオのスケジューリングと実行」をご参照ください。
説明SQL Time Windowは
__time__
フィールドです。 詳細については、「予約済みフィールド」をご参照ください。__time__
がSQLコードで定義されていない場合、ターゲットLogstoreに書き込まれたログ時間__time__
は、デフォルトでスケジュールされたSQLジョブの開始時間になります。
SQLタイムアウト
SQL分析操作が失敗した場合の自動再試行のしきい値。 指定した最大時間を超えた期間、またはインスタンスの再試行回数が指定した上限を超えた場合、インスタンスは再試行を停止し、FAILED状態になります。 失敗の原因に基づいて、インスタンスを手動で再試行できます。 詳細については、「スケジュールされたSQLインスタンスの再試行」をご参照ください。
遅延タスク
インスタンスがスケジュールされた時刻から遅延した秒数。 設定可能な値は、0 から 100 です。 単位は秒です。
データが宛先Metricstoreに書き込まれるときにレイテンシが存在する場合、このパラメーターを使用してデータの整合性を確保できます。
スケジュールされたSQLジョブが作成された後、ターゲットMetricstoreでSQL実行結果を表示できます。