Drop filterとは
New Relicでは、各種エージェントから送信されたデータを実際にデータベースに登録する前に不要なデータを削除するDrop filterという機能があります。これにより、間違って送信されてしまったデータがデータベースに登録されてしまうことを防いだり、意図せず大量のデータが送信されてしまいData ingest量がスパイクすることを防止することができます。各種データを送信するエージェントやクライアント側でもフィルター設定を行うことはできますが、New Relic側でもルールを設定しておくことにより、万が一クライアント側のフィルタールールで漏れてきてしまったデータであっても確実にDropすることが可能になります(いわゆる多重防御の観点)。

ログのDropは画面からも設定可能
このDrop filterはログも対象にすることができます。また、ログのDrop設定については、New RelicのLogs画面からも行うことができます。ログのフィルター条件を設定して一度Query logs
をクリックし、対象のログを表示させた状態からCreate drop filter
を選択することで、このログを取り込み対象外にすることができます。
ただし、この画面からだとログ検索の条件指定方法でルールを作成する必要があります。

ログの検索方法はLuceneベースになります。詳細はドキュメントを参照してください。
NRQLを使ってログのDrop filterを作成する
そこでNerdgraphを使ってルールを登録します。Nerdgraphでルール作成する際は、NRQLでの指定ができますので、普段から使い慣れた条件指定方法でルールを作成することができます。なお、Nerdgraphを実行するにはNerdgraph Explorerが便利です。

ここにクエリを入力して実行を行うだけで、Nerdgraph経由でルールを作成することができます。Nerdgraphを使ってルールを作成するクエリの詳細はこちらに記載されていますが、以下のサンプルを参考にしてみてください。直感的に理解できる内容かと思います。
ここでポイントになるのはnrql
とsource
の部分です。画面から設定する際はLuceneベースでの条件指定方法しかできませんでしたが、ここではNRQLを設定することができます。また、このルールがログ用のルールであることを定義するためにsource: "Logging"
を設定する必要があります。
画面上でルールを確認する
Nerdgraphでのルール登録に成功すると、New Relic LogsのDrop filtersから登録したルールを確認することができます。あとは実際にこのルールに該当するログをテスト転送してみて、ちゃんとデータがDropされていることを確認しましょう。

まとめ
ログのDrop filterは画面からも設定できる反面、Luceneベースの検索条件でルールを指定しなければならないため、慣れないこともあるかと思います。その際はNerdgraphを使ってルールを作成し、使い慣れたNRQLでルールを定義してみてはいかがでしょうか?
Die in diesem Blog geäußerten Ansichten sind die des Autors und spiegeln nicht unbedingt die Ansichten von New Relic wider. Alle vom Autor angebotenen Lösungen sind umgebungsspezifisch und nicht Teil der kommerziellen Lösungen oder des Supports von New Relic. Bitte besuchen Sie uns exklusiv im Explorers Hub (discuss.newrelic.com) für Fragen und Unterstützung zu diesem Blogbeitrag. Dieser Blog kann Links zu Inhalten auf Websites Dritter enthalten. Durch die Bereitstellung solcher Links übernimmt, garantiert, genehmigt oder billigt New Relic die auf diesen Websites verfügbaren Informationen, Ansichten oder Produkte nicht.