• EnglishEspañol日本語한국어Português
  • ログイン今すぐ開始

この機械翻訳は、参考として提供されています。

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

問題を作成する

NerdGraphチュートリアル。信号の消失とギャップフィリング

NerdGraph APIを使用して、NewRelicアラートの信号損失検出とギャップフィリングをカスタマイズできます。たとえば、失われた信号を考慮するまでの待機時間を構成したり、時系列のギャップを埋めるために使用する値を構成したりできます。

信号の損失は、New Relicがデータの受信をしばらく停止すると発生します。技術的には、データが時系列で最後に受信されてからかなりの時間が経過した後に、信号の損失を検出します。信号の損失は、インシデントをトリガーまたは解決するために使用でき、これを使用してアラートを設定できます。

ギャップフィリングは、データポイントが失われたことによる問題を解決するのに役立ちます。有効なデータポイントの間にギャップが検出されると、最後に確認された値や静的な値などの代替値で自動的にギャップを埋めます。ギャップフィリングを行うことで、必要のないアラートの発生や解決を防ぐことができます。

ヒント

システムは、アクティブに報告された信号のギャップを埋めます。 この信号履歴は、非アクティブ状態が 2 時間続くと削除されます。 ギャップを埋める場合、この非アクティブ期間の後に受信されたデータ ポイントは新しい信号として扱われます。

シグナル ロス、ギャップ フィリング、およびこれらの機能へのアクセスをリクエストする方法の詳細については、 このサポート フォーラムの投稿を参照してください。

このガイドでは、以下のことを説明しています。

電波障害検出のカスタマイズ

一定時間が経過してもデータが受信されない場合、信号喪失検出によってインシデントが開始または終了されます。たとえば、有効期限を 60 秒に設定し、統合が 1 分以上データを送信しないように見える場合、信号損失しきい値がトリガーされます。

NerdGraph の次の 3 つのフィールドを使用して、信号損失の期間と、インシデントを開くか閉じるかを構成できます。

  • expiration.expirationDuration:最後のデータポイントがプラットフォームによって受信されてから、信号が失われたと見なされるまでの待機時間(秒単位)。これは、データのタイムスタンプではなく、データがプラットフォームに到着する時間に基づいています。デフォルトではこれをnullのままにするため、信号損失検出は有効になりません。
  • expiration.openViolationOnExpiration: trueの場合、信号が失われたときに新しいインシデントがオープンされます。デフォルトは falseです。このフィールドを使用するには、期間を指定する必要があります。
  • expiration.closeViolationsOnExpiration: trueの場合、シグナルに関連する未解決のインシデントは有効期限が切れるとクローズされます。デフォルトは falseです。このフィールドを使用するには、期間を指定する必要があります。

既存の状態の信号損失設定を見る

既存のNRQL条件では、信号損失設定がすでに構成されている場合があります。既存の条件設定を表示するには、 nrqlCondition > expirationの下のフィールドを選択します:

{
actor {
account(id: YOUR_ACCOUNT_ID) {
alerts {
nrqlCondition(id: NRQL_CONDITION_ID) {
... on AlertsNrqlStaticCondition {
id
name
nrql {
query
}
expiration {
closeViolationsOnExpiration
expirationDuration
openViolationOnExpiration
}
}
}
}
}
}
}

このような結果が表示されるはずです。

{
"data": {
"actor": {
"account": {
"alerts": {
"nrqlCondition": {
"expiration": {
"closeViolationsOnExpiration": false,
"expirationDuration": 300,
"openViolationOnExpiration": true
},
"id": "YOUR_ACCOUNT_ID",
"name": "Any less than - Extrapolation",
"nrql": {
"query": "SELECT average(value) FROM AlertsSmokeTestSignals WHERE wave_type IN ('min-max', 'single-gap') FACET wave_type"
}
}
}
}
}
},
...

信号の消失を設定して新たな状態を作る

2 分間データが受信されなかった場合に信号損失しきい値をトリガーする NRQL 静的条件を 新規作成するとします。以下の例のように、 expirationDuration を 120 秒に設定し、 openViolationOnExpiration trueに設定します。

mutation {
alertsNrqlConditionStaticCreate(
accountId: YOUR_ACCOUNT_ID
policyId: YOUR_POLICY_ID
condition: {
name: "Low Host Count - Catastrophic"
enabled: true
nrql: {
query: "SELECT uniqueCount(host) FROM Transaction WHERE appName='my-app-name'"
}
signal {
aggregationWindow: 60
aggregationMethod: EVENT_FLOW
aggregationDelay: 120
}
terms: [{
threshold: 2
thresholdOccurrences: AT_LEAST_ONCE
thresholdDuration: 600
operator: BELOW
priority: CRITICAL
}]
valueFunction: SINGLE_VALUE
violationTimeLimitSeconds: 86400
expiration: {
expirationDuration: 120
openViolationOnExpiration: true
}
}
) {
id
name
}
}

条件の信号消失設定の更新

アラート状態の信号損失パラメータを更新したい場合はどうなりますか?次の変更により、NRQL静的条件を新しいexpiration値で更新できます。

mutation {
alertsNrqlConditionStaticUpdate(
accountId: YOUR_ACCOUNT_ID
id: YOUR_STATIC_CONDITION_ID
condition: {
expiration: {
closeViolationsOnExpiration: BOOLEAN
expirationDuration: DURATION_IN_SECONDS
openViolationOnExpiration: BOOLEAN
}
}
) {
id
expiration {
closeViolationsOnExpiration
expirationDuration
openViolationOnExpiration
}
}
}

隙間を埋めるカスタマイズ

ギャップフィリングでは、時系列のギャップ値を、最後に見つかった値か、任意の静的な値で置き換えます。ギャップフィリングを行うのは、信号のギャップの後に別のデータポイントが受信されてから(データ受信が回復してから)です。

タイプがスタティックに設定されている場合、フィリングのタイプと値の両方を設定できます。

  • signal.fillOption:失われたデータポイントの置換値のタイプ。値は次のとおりです。

    • NONE:ギャップフィリングは無効になっています。
    • LAST_VALUE:時系列で見られる最後の値。
    • STATICfillValueで定義された任意の値。
  • signal.fillValuefillOptionSTATICに設定されている場合に失われたデータポイントを置き換えるために使用する値。

重要

ギャップフィリングもexpiration.expirationDurationの影響を受けます。ギャップが有効期限よりも長い場合、信号は期限切れと見なされ、ギャップは埋められなくなります。

例えば、ギャップフィリングを設定した静的なNRQL条件を作成する方法は以下の通りです。

mutation {
alertsNrqlConditionStaticCreate(
accountId: YOUR_ACCOUNT_ID
policyId: YOUR_POLICY_ID
condition: {
enabled: true
name: "Example Gap Filling Condition"
nrql: { query: "SELECT count(*) FROM Transaction" }
terms: {
operator: ABOVE
priority: CRITICAL
threshold: 1000
thresholdDuration: 300
thresholdOccurrences: ALL
}
valueFunction: SINGLE_VALUE
violationTimeLimitSeconds: 28800
signal: {
aggregationWindow: 60
aggregationMethod: EVENT_FLOW
aggregationDelay: 120
fillOption: STATIC
fillValue: 1
}
}
) {
id
}
}
Copyright © 2024 New Relic株式会社。

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.