• ログイン

本書は、お客様のご参考のために原文の英語版を機械翻訳したものです。

英語版と齟齬がある場合、英語版の定めが優先するものとします。より詳しい情報については、本リンクをご参照ください。

問題を作成する

NerdGraphでデータを落とす

データインジェスト を管理する一つの方法は、データドロップのルールを設定することです。データドロップをサポートしている データに対して 、以下のことができます。

  • 重要ではない価値の低いデータを除外する
  • 機密性の高いデータを除外

概要

データドロップのルールを設定すると、その時点以降のデータのみが影響を受けます。すでに取り込まれている既存のデータ は、編集や削除ができません 。詳しくは、NerdBytesのビデオ(7分9秒)をご覧ください。

NerdGraphを使用する以外にも、データをドロップする方法は以下の通りです。

要件

ドロップフィルターのルールを作成・編集できるかどうかは、どのユーザーモデルを使っているかによって異なります。

次のデータ型は、データドロップの対象になります。

将来的にはさらに多くのタイプに対応する予定です。

ドロップデータルールの作成

注意

データをドロップするかどうかは慎重に判断してください。ドロップしたデータは復元できません。この機能を使用する前に、以下の 注意情報を確認してください。

データをドロップするには、 NerdGraph-format drop rule を作成します。

  • NRQL ドロップするデータタイプを指定する文字列
  • NRQL 文字列の適用方法を指定する アクション タイプ

NerdGraph explorer で形成し、呼び出しを行うことができます。

nrqlクエリの長さの制限は4096文字です。長さを超えると、nerdGraphはエラーINVALID_NRQL_TOO_LONGをスローします。

データを落とすには2つの方法があります。

  • データ型全体またはデータサブセット(オプションのフィルターを使用)を削除します。これはDROP_DATAアクションタイプを使用し、次の形式のNRQLを使用します。

    SELECT * FROM DATA_TYPE_1, DATA_TYPE_2 (WHERE OPTIONAL_FILTER)

    このタイプのドロップルールでは、 SELECT句で*以外のものを使用することはできません。

  • データ型から属性を削除します(オプションのフィルターを使用)。これはDROP_ATTRIBUTESアクションタイプを使用し、次の形式のNRQLを使用します。

    SELECT dropAttr1, dropAttr2 FROM DATA_TYPE (WHERE OPTIONAL_FILTER)

    このタイプのドロップルールでは、生の属性名の空でないリストを渡す必要があります。

NRQL制限

すべてのNRQL句がドロップルールの生成に意味があるわけではありません。 WHERE句を指定して、特定の属性を持つデータを選択できます。 LIMITTIMESERIESCOMPARE WITHFACET 、およびその他の句などの他の機能は使用できません。

SINCE およびUNTILはドロップルールではサポートされていません。時間固有のルールがある場合(たとえば、将来のある時点まですべてを削除する)、 WHERE timestamp < (epoch milliseconds in the future)を使用します。また、 SINCEを使用して履歴データをドロップすることはできません。NRQLドロップルールは、ドロップルールの作成後に報告されたデータにのみ適用されます。すでに報告されているデータを削除する必要がある場合は、NewRelicの担当者にお問い合わせください。

2つのアクションタイプにはこれらの制限があります。

  • DROP_DATA 使用できるのはSELECT *のみです。
  • DROP_ATTRIBUTES 「raw」属性( アグリゲーター関数が適用されていない属性)を持つSELECTを使用する必要があります。これは、 SELECT *を使用できないことも意味します。さらに、データ型に不可欠であり、削除できない属性がいくつかあります(イベントデータのtimestampなど)。それらを含めると、登録は失敗します。

ドロップルールの例

以下にドロップルールの例を示します。

ドロップルールの動作確認

ドロップルールを作成したら、期待どおりに機能していることを確認します。登録が成功するとすぐにルールが有効になるため、登録したクエリのTIMESERIESバージョンを実行して、データが削除されることを確認してください。

ドロップルールタイプ

NRQL

DROP_DATA

ドロップルールNRQL。

SELECT * FROM MyEvent WHERE foo = bar

バリデーションNRQL。

SELECT count(*) FROM MyEvent WHERE foo = bar TIMESERIES

これは0に低下するはずです。他に影響がないことを確認するには、 WHERE句を逆にします。

DROP_ATTRIBUTES

ドロップルールNRQL。

SELECT dropAttr1, dropAttr2 FROM MyEvent WHERE foo = bar

バリデーションNRQL。

SELECT count(dropAttr1), count(dropAttr2) FROM MyEvent WHERE foo = bar TIMESERIES

両方の行が0にドロップする必要があります。これらの属性を含むイベントに影響がなく、それでも影響がないことを確認するには、 WHERE句を逆にします。

ルールを見る

以下は、アカウントに設定されているドロップルールを返すNerdGraphコールの例です。

{
    actor {
        account(id: YOUR_ACCOUNT_ID) {
            nrqlDropRules {
                list {
                    rules {
                        id
                        nrql
                        accountId
                        action
                        createdBy
                        createdAt
                        description
                    }
                    error { reason description } 
                }
            }
        }
    }
}

ドロップルールの削除

以下は、特定の2つのドロップルールを削除するNerdGraphコールの例です。

mutation {
    nrqlDropRulesDelete(accountId: YOUR_ACCOUNT_ID, ruleIds: ["48", "98"]) {
    successes {
        id
        nrql
        accountId
        action
        description
    }
    failures {
        error { reason description }
        submitted { ruleId accountId }
        }
    }
}

ドロップルール履歴の監査

ドロップルールの作成者と削除者を確認するには、 アカウントの監査ログ を照会してください。 リストエンドポイント には、ルールを作成した人のユーザーIDも含まれています。

データを落とす際の注意点

ドロップルールを作成する際には、ルールが設定した条件を満たすデータを正確に識別し、廃棄することに責任を負います。また、ルールの監視だけでなく、New Relic に開示したデータの監視にも責任があります。

New Relic は、この機能によってお客様が抱えるデータ開示の懸念を完全に解決できることを保証するものではありません。New Relic は、お客様が作成したルールがどれだけ効果的であるかをレビューまたは監視しません。

センシティブなデータに関するルールを作成すると、どのような種類のデータを保持しているのか、データやシステムの形式(例えば、電子メールアドレスや特定のクレジットカード番号を参照することなど)などの情報が漏れてしまいます。作成したルールは、そのルールに含まれるすべての情報を含めて、関連するロールベースのアクセス制御権限を持つすべてのユーザーが表示および編集できます。

ドロップされるのは新規データのみです。既存のデータ の編集や削除はできません

ディメンション・メトリック・ロールアップでの属性の削除

Dimensional metrics メトリクスをロールアップに集約して長期保存し、長期的なクエリを最適化する方法として メトリクスのカーディナリティ制限 がこのデータに適用されます。

この機能を利用して、長期間の保存や問い合わせには必要ないが、リアルタイムの問い合わせのために維持しておきたい属性を決めることができます。

たとえば、属性としてcontainerIdを追加すると、ライブトラブルシューティングや最近の分析に役立ちますが、より大きな傾向を長期間にわたってクエリする場合は必要ない場合があります。 containerIdのようなユニークなものがどれほどユニークであるかにより、それはあなたをメトリックカーディナリティの限界に向かって素早く駆り立てることができ、ヒットするとそのUTC日の残りのロールアップの合成を停止します。

また、この機能により、カーディナリティの高い の属性を生データに残し、ロールアップから削除することができ、カーディナリティの限界に近づくスピードをよりコントロールすることができます。

使用方法

ディメンション指標のロールアップから属性を削除します(オプションのフィルターを使用)。これはDROP_ATTRIBUTES_FROM_METRIC_AGGREGATESアクションタイプを使用し、次の形式のNRQLを使用します。

SELECT dropAttr1, dropAttr2 FROM Metric (WHERE OPTIONAL_FILTER)

NerdGraphのリクエスト例をご紹介します。

mutation {
    nrqlDropRulesCreate(accountId: YOUR_ACCOUNT_ID, rules: [
        {
            action: DROP_ATTRIBUTES_FROM_METRIC_AGGREGATES
            nrql: "SELECT containerId FROM Metric WHERE metricName = 'some.metric'"
            description: "Removes the containerId from long term querys."
        }
    ])
    {
        successes { id }
        failures {
            submitted { nrql }
            error { reason description }
        }
    }
}

動作を確認するには、ルールがピックアップされ、集計データが生成されるまで3~5分待ちます。次に、上記のNRQLの例があなたのドロップルールであると仮定して、以下のクエリを実行します。

SELECT count(containerId) FROM Metric WHERE metricName = 'some.metric' TIMESERIES SINCE 2 hours ago
SELECT count(containerId) FROM Metric WHERE metricName = 'some.metric' TIMESERIES SINCE 2 hours ago RAW

最初のクエリはメトリックロールアップを取得し、新しいドロップルールに従ってcontainerIdがドロップされたため、0にドロップする必要があります。 2番目のクエリは、 RAWキーワードを使用してメトリックrawを取得します。これは、rawデータが新しいドロップルールの影響を受けないため、引き続き安定している必要があります。これがカーディナリティに与える影響を確認する方法の詳細については、カーディナリティの高いメトリックを理解してクエリするを確認してください。

制限

DROP_ATTRIBUTESに適用されるすべての制限はDROP_ATTRIBUTES_FROM_METRIC_AGGREGATESに適用されますが、 Metricデータ型のみをターゲットにできるという追加の制限があります。また、メトリクスルールへのイベントによって作成されたデータを対象とするMetricクエリ、またはタイムスライスデータを対象とするMetricクエリでは機能しません。

もっと詳しく知る

もっと知りたい方へのおすすめ情報

Copyright © 2022 New Relic株式会社。

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