ここでは、イベント、ログ、またはスパンからメトリクスを作成する際の制限、要件、および推奨事項について説明します。
メトリックアグリゲーション
NRQLクエリでは、次のsummary
、 uniqueCount
、またはdistribution
関数のいずれかを使用してメトリックを集計する必要があります。
働き | コメントコメント |
---|---|
| 各時間ウィンドウ (現在は 1 分) の概要メトリクス データ ポイントを作成します。 NRQLクエリが、 Example rule-creation query:
|
| 1分の時間枠ごとに ルール作成のためのクエリの例
|
| 1 分間の時間ウィンドウごとに分布メトリック データ ポイントを作成します。 NRQL クエリで Example of creating a
|
単純なカウント: | 特定の Example:
そして、次のように照会します。
メトリクスの詳細については、 メトリクスの種類に関するドキュメント を参照してください。 |
ルール作りの限界
これらの制限は、メトリックルールの作成に影響します。
制限 | コメントコメント |
---|---|
アカウント制限 | 1つのアカウントには、最大1,000個のメトリック作成ルールを設定できます。 |
メトリックルールの制限 | ルールができる。
|
タイムウィンドウの制限 | 30 秒の時間枠内の 1 つのメトリックに対する一意のメトリック名/属性値の組み合わせに対する 50K の制限。ロールアップの通常のカーディナリティ制限が適用されます。 30秒のウィンドウ制限で50kを超えると、ルールが無効になり、そのアカウントに次のような
|
カーディナリティ制限
ルール作成の制限 には、メトリック名と属性値のユニークな組み合わせの数の制限が含まれる。この制限が存在するのは、属性や属性値の数が多いと、報告されるデータのサイズが指数関数的に増加する可能性があるためです。
Example metric creation rule that attaches five attributes:
FROM ProcessSample SELECT summary(ioTotalReadBytes) WHERE entityType = 'ComputeSample' FACET awsRegion, awsAvailabilityZone, commandName, entityName, processId
仮に5つの属性のそれぞれが1分間に10個のユニークな値を報告したとすると、ユニークなメトリック名と属性の組み合わせの数は理論的には最大で10x10x10x10x10、つまり100,000個になります。複数のユニークな値を持つ複数の属性は、多数のユニークなメトリックエントリにつながります。
実際には、属性は関連していることが多いため、これは通常は当てはまりません。たとえば、1つの属性がhostname
で、別の属性がawsRegion
の場合、ホスト名Aが表示されると、その属性は常にAWSリージョンBにあります。ホスト名Aやその他のAWSリージョンの値は表示されません。
これが、 NRQLの作成プロセス中に、 uniqueCount
関数を使用して、NRQLクエリが生成している一意のメトリック名/属性値の組み合わせの数を確認することが重要である理由です。
1つのルールから複数の評価指標が得られる
1つのルールで作成できるメトリクスは10個までです。1つのルールで1つずつ作成されたメトリクスと、1つのルールで作成されたメトリクスの間には、機能的な違いはありません。1つのルールで複数のメトリクスを作成する理由。
- rules-per-account limitに到達する可能性が低い.
- 複数のメトリクスに同じ属性を追加しやすくなりました。
Example creating multiple metrics with a single rule:
FROM Transaction SELECT uniqueCount(request.headers.userAgent) AS 'server.request.header.userAgent.uniqueCount', summary(duration) AS 'server.duration', summary(totalTime) AS 'server.totalTime' WHERE appName = 'Browser Monitoring Router' FACET http.statusCode, name, appName, host
メートル単位のネーミング
メトリックには、 NRQLルール作成プロセスの一部として、 AS
句で名前が付けられます。次のNRQLの例では、メトリックの名前はio.totalread.bytes
です。
FROM ProcessSample SELECT summary(ioTotalReadBytes) AS 'io.totalread.bytes' WHERE entityType = 'ComputeSample' FACET awsRegion, awsAvailabilityZone, commandName
AS
句で割り当てられた名前がない場合、メトリック名は照会された属性の名前です。この例では、名前が割り当てられていない場合、メトリック名はioTotalReadBytes
になります。
メトリック名 | 要件および推奨 |
---|---|
要件 | メトリックのネーミングに関する要件
|
長さと構造 | 他の人がこの指標を見つけ、理解し、使用することが容易になるような名称と構造を決定する。
|
名前の中の成分 | メトリクス名の中にコンポーネント(メトリクスのソースや測定対象物など)を作りたい場合は、broadからspecificへ(左から右へ)進むことをお勧めします。
|
属性 | メトリック名に属性を入れないようにします。属性とは、クラスタやアベイラビリティー・ゾーンのように、データのフィルタリングやファセットに使用できるメトリックの品質です。 Example: メトリクス名に可用性ゾーンを含めると、そのメトリクスではすべての可用性ゾーンにわたる結果を表示できなくなります。 |
メートル法の名称変更 | メトリック名を変更した場合、履歴データは not その新しい名前に更新されます。過去のデータを照会したりグラフ化するには、古いメトリック名を指定する必要があります。 |