本スクリプトは、Event APIを使って、任意のタイミングで、任意のタイムスタンプを持つイベントを送信する試験を実施するためのスクリプトです。
- 送信先のendpointはUSのendpointです。
- デフォルトのイベント名は、
DummyEvent
です。 - 処理はスクリプトが実行された後、実行環境の時計で、0秒になるのを待って、処理開始されます。例えば、8時00分32秒に実行されたら、実際の処理は、8時01分00秒に開始されます。
本スクリプトはMacOS上で動作すること確認済みとなります。
なお、Windows環境(PowerShell, Cygwin等)においても基本的に動作すると思われます。なお、PowerShellでvendor-install.sh
は動作しないようですので、スクリプトの中をご確認の上、直接 pip3 install
を実行してインストールしてください。
NewRelicのアカウント設定を行って下さい。
- env.txtをコピーして、.envというファイルを作成する
- NR_ACCOUNT_IDに対象のアカウントIDを設定する
- 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/c
1 のように全階層を含めてもらうことで実行できます。
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
-
自動付与されるパスの区切り文字(
/
等) はOSの仕様に準拠した文字列が適用されます。-s
で渡すシナリオのパスがサブフォルダを含む場合、ご利用の環境に応じた文字をご利用ください。 ↩