Skip to content

newrelickk/dummy-event-sender

Repository files navigation

はじめに

本スクリプトは、Event APIを使って、任意のタイミングで、任意のタイムスタンプを持つイベントを送信する試験を実施するためのスクリプトです。

  • 送信先のendpointはUSのendpointです。
  • デフォルトのイベント名は、 DummyEvent です。
  • 処理はスクリプトが実行された後、実行環境の時計で、0秒になるのを待って、処理開始されます。例えば、8時00分32秒に実行されたら、実際の処理は、8時01分00秒に開始されます。

動作環境

本スクリプトはMacOS上で動作すること確認済みとなります。 なお、Windows環境(PowerShell, Cygwin等)においても基本的に動作すると思われます。なお、PowerShellでvendor-install.shは動作しないようですので、スクリプトの中をご確認の上、直接 pip3 install を実行してインストールしてください。

初期設定

NewRelicのアカウント設定を行って下さい。

  1. env.txtをコピーして、.envというファイルを作成する
  2. NR_ACCOUNT_IDに対象のアカウントIDを設定する
  3. NR_LICENSE_KEYに対象のライセンスキーを設定する

./vendor-install.shを実行することで依存パッケージがvendorフォルダにインストールされます。

実行

python3 send_dummy_event.pyで、デフォルトのシナリオ(./scenarios/default/)に基づき実行されます。

python3 send_dummy_event.py -s <scenario> で実行すると ./scenarios/<scenario>/配下のシナリオが実行されます。

オリジナルシナリオの作成について

シナリオのフォーマットや例については、後述のイベントシナリオフォーマットや、シナリオサンプルを参照してください。

一時的にシナリオを作成する場合、 ./scenarios//default/ のファイルを修正して python3 send_dummy_event.py のコマンドで確認して頂く方法が簡単です。

また、再利用などする場合、./scenarios/配下にフォルダを作って、各フォルダに作成されたシナリオを保存していただき、実行していただくことができます。また、フォルダ階層に特段制限はなく、 -s で渡すパラメータに a/b/c1 のように全階層を含めてもらうことで実行できます。

イベントシナリオフォーマット

scenario.ymlにシナリオがyaml形式で記述されています。 必須の属性は1つのみで、以下に記載の各属性が指定できます。

必須 属性名 説明
必須 time 時間
処理が開始された時間に対して、この値が加算された時間がtimestampに付与される
値の例)10m
任意 delay 送信遅延時間
対象のデータが送られる遅延時間
例えば、timestampに対して5分遅延して送る場合は、「5m」を設定
省略した場合は、0s(遅延なし)となる。
また、負の値(-3mなど)の場合は、timestampの時間より前に送信される
任意 count 同一の時刻設定で送信されるイベントの数。省略した場合は、1となる。
任意 template event_template.ymlに記載のテンプレート名を記載する。送信時のデータに読み込まれたデータが追加される。任意の固定データを複数のイベントに付与する場合に利用
任意 attributes 送信イベントに任意の属性を追加する場合に利用。templateで指定された値も上書き可能。

送信イベント内容

イベント名は、デフォルトでは、 DummyEvent です。イベントに含まれる各属性は以下のとおりです。

属性名 説明
uuid string 処理ごとに発行されるランダムなUUID。1回の処理に含まれるイベントはすべて同じ値となる
loopCount int シナリオでcountに設定した値と同じ
startTime datetime 処理開始日時(実行環境日時)
timestamp datetime イベントのタイムスタンプ (処理開始時刻 + timeに設定した値)
sentTimestamp int 実際の送信日時(timestamp + delayに設定した値)

シナリオサンプル

各種シナリオのサンプルはこちらを参照

Footnotes

  1. 自動付与されるパスの区切り文字(/等) はOSの仕様に準拠した文字列が適用されます。-sで渡すシナリオのパスがサブフォルダを含む場合、ご利用の環境に応じた文字をご利用ください。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published