データインジェスト を管理する一つの方法は、データドロップのルールを設定することです。データドロップをサポートしている データに対して 、以下のことができます。
- 重要ではない価値の低いデータを除外する
- 機密性の高いデータを除外
概要
データドロップのルールを設定すると、その時点以降のデータのみが影響を受けます。すでに取り込まれている既存のデータ は、編集や削除ができません 。詳しくは、NerdBytesのビデオ(7分9秒)をご覧ください。
NerdGraphを使用する以外にも、データをドロップする方法は以下の通りです。
- Prometheus remote write を使用している場合は、 Drop Prometheus remote write data を参照してください。
- ログを報告している場合は、UI ログデータをドロップすることができます 。
- APM メトリックのタイムスライスデータを削除したい場合は、 メトリックの正規化ルール を使用することができます。
要件
ドロップフィルターのルールを作成・編集できるかどうかは、どのユーザーモデルを使っているかによって異なります。
- 新しいユーザーモデル:「NRQLドロップルール」機能を備えたロールを割り当てる必要があります。
- オリジナルのユーザーモデル: Adminロールを持っている必要があります 。
次のデータ型は、データドロップの対象になります。
APMで報告されたイベント
ブラウザで報告されるイベント
モバイルで報告されたイベント
シンセティック・レポート・イベント
カスタムイベント( APMエージェントAPI や Event API で生成されるようなもの)。
ログデータ(UIを使ってデータをドロップすることも可能です )
デフォルトのインフラストラクチャ モニタリング イベント と インフラストラクチャ統合 イベントには、次の注意事項があります。
- ダウンサンプリングされた
SystemSample
、ProcessSample
、NetworkSample
、およびStorageSample
で、時間枠が59分を超える場合はドロップできません。このデータは、データの取り込みにはカウントされません。 - 生のインフラストラクチャ データはアラートに使用されるため、これらのイベントをドロップすると、時間枠が 59 分を超えるチャート (アラート条件のプレビュー チャートなど) にデータが表示されていても、アラートを出すことができなくなります。
- ダウンサンプリングされた
Dimensional metrics 、以下のような注意点があります。
- 請求への影響: 使用量ベースの料金では、ドロップされたデータは請求されません。元の料金モデルの場合、ドロップされたデータは請求可能です。
- events-to-metricsサービスによって生成されたメトリクスについて: ドロップルールは機能しませんが、events-to-metricルールを無効にするか再設定することで、これらのメトリクスを停止したり、属性を刈り込んだりすることができます。
将来的にはさらに多くのタイプに対応する予定です。
ドロップデータルールの作成
注意
データをドロップするかどうかは慎重に判断してください。ドロップしたデータは復元できません。この機能を使用する前に、以下の 注意情報を確認してください。
データをドロップするには、 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
句を指定して、特定の属性を持つデータを選択できます。 LIMIT
、 TIMESERIES
、 COMPARE WITH
、 FACET
、およびその他の句などの他の機能は使用できません。
SINCE
およびUNTIL
はドロップルールではサポートされていません。時間固有のルールがある場合(たとえば、将来のある時点まですべてを削除する)、 WHERE timestamp < (epoch milliseconds in the future)
を使用します。また、 SINCE
を使用して履歴データをドロップすることはできません。NRQLドロップルールは、ドロップルールの作成後に報告されたデータにのみ適用されます。すでに報告されているデータを削除する必要がある場合は、NewRelicの担当者にお問い合わせください。
2つのアクションタイプにはこれらの制限があります。
DROP_DATA
使用できるのはSELECT *
のみです。DROP_ATTRIBUTES
「raw」属性( アグリゲーター関数が適用されていない属性)を持つSELECT
を使用する必要があります。これは、SELECT *
を使用できないことも意味します。さらに、データ型に不可欠であり、削除できない属性がいくつかあります(イベントデータのtimestamp
など)。それらを含めると、登録は失敗します。
ドロップルールの例
以下にドロップルールの例を示します。
ドロップルールの動作確認
ドロップルールを作成したら、期待どおりに機能していることを確認します。登録が成功するとすぐにルールが有効になるため、登録したクエリのTIMESERIES
バージョンを実行して、データが削除されることを確認してください。
ドロップルールタイプ | NRQL |
---|---|
| ドロップルールNRQL。
バリデーションNRQL。
これは0に低下するはずです。他に影響がないことを確認するには、 |
| ドロップルールNRQL。
バリデーションNRQL。
両方の行が0にドロップする必要があります。これらの属性を含むイベントに影響がなく、それでも影響がないことを確認するには、 |
ルールを見る
以下は、アカウントに設定されているドロップルールを返す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日の残りのロールアップの合成を停止します。
また、この機能により、カーディナリティの高い の属性を生データに残し、ロールアップから削除することができ、カーディナリティの限界に近づくスピードをよりコントロールすることができます。
使用方法
SELECT dropAttr1, dropAttr2 FROM Metric (WHERE OPTIONAL_FILTER)
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 agoSELECT 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
クエリでは機能しません。
もっと詳しく知る
もっと知りたい方へのおすすめ情報
- NerdGraphの基礎知識と用語集
- NRQLの基礎知識
- NRQL ドロップ ルールに関するコミュニティ ディスカッションについては、サポート フォーラムを参照してください。
- 複雑な組織のデータ取り込みの管理の詳細については、 データ取り込みガバナンスを参照してください。