Anypoint Custom Metrics Connector を使用すると、定義した運用およびビジネスメトリクス値をアプリケーションから Anypoint Monitoring に送信できます。組み込みのカスタムメトリクスダッシュボードやカスタムダッシュボードの高度なモードを使用して、リアルタイムにカスタムメトリクスを視覚化できます。
Anypoint Custom Metrics Connector でメトリクスを定義し、ダッシュボードに表示するメトリクスを選択します。定義したディメンションに沿ってメトリクスの絞り込みやグループ化ができ、複数のカスタムメトリクスや組み込みメトリクスを 1 つのダッシュボード視覚化に含めることができます。
始める前に
サポート対象の Mule Runtime バージョンで Mule アプリケーションを実行します。サポート対象のバージョンについては、Mule Runtime Release Notesを参照してください。
Anypoint Monitoring エージェントをインストールする必要もあります。
コネクタ設定についての詳細は、「Custom Metrics Connector」を参照してください。Mule アプリケーションフローでは、アプリケーションをサーバーやサーバークラスターにデプロイまたは再デプロイする前にコネクタを設定する必要があります。
Custom Metrics Connector の特定
Anypoint Monitoring から、[Custom Metrics (カスタムメトリクス)] をクリックして、[Anypoint Monitoring Custom Metrics Connector] を見つけます。または、Anypoint Exchange でコネクタを検索することもできます。
カスタムメトリクスのベストプラクティス
ベストプラクティスとしては、期間と頻度を効果的に使用することや、カーディナリティディメンションの低いデータを使用することなどがあります。
期間と頻度の効果的な使用
カスタムメトリクスダッシュボードの各チャートは、クエリの出力を表します。ダッシュボードの 2 つのパラメーターである時間範囲と更新頻度は、チャートを生成するクエリの応答時間に影響します。
- Time Range (時間範囲)
-
チャートを生成するためにフェッチまたは処理するデータ量を決定します。たとえば、日次チャートを表示する場合よりも月次チャートのほうが、多くのデータをフェッチして処理することになります。
- Refresh frequency (更新頻度)
-
チャートを更新する間隔を決定します。更新頻度が高いほどシステムへの負荷が高くなり、パフォーマンスに影響します。たとえば、更新頻度が 1 時間であれば毎時、1 分間であれば毎分クエリを送信することになります。
時間範囲を (日次から月次などに) 大きくしたり、更新頻度を (1 時間から 1 分間などに) 高くしたりすると、システムの応答時間に影響がでます。チャートの応答時間を改善するには、時間範囲を短くするか、更新頻度を低くしてください。
低いカーディナリティディメンションの使用
ほとんどのカスタムメトリクスディメンションが取れる一意の値は 100 未満ですが、country_code、state_code、city_code、zip など、一意の値が 1000 近くになるものもあります。カスタムメトリクスには、高カーディナリティデータ (一意の値を多く持つデータ) を追加しないでください。高カーディナリティディメンションの例としては、customer_id、user_id、session_id、order_id、transaction_id、email_address、token_id、product_id、location_id (latitude/longitude)、ip_address、phone_number などがあります。高カーディナリティディメンションを使用したカスタムメトリクスで設定されているチャートは、ダッシュボードの応答時間に影響します。最良の結果を得るには、一意の値が少ないディメンションに制限してください。
特定のカスタムメトリクスチャートの応答が遅く、システムの他のチャートに影響している場合は、次のような対策を執ってください。
-
システムに影響する高カーディナリティディメンションを使用しない新しいカスタムメトリクスを作成する
-
高カーディナリティディメンションを次のような低カーディナリティディメンションに置き換える:
-
product_id の代わりに category_id -
location_id の代わりに country_code -
order_id の代わりに order_count
-
-
新しいカスタムメトリクスを使用する際には UUID とタイムスタンプの使用を避ける
-
カスタムメトリクスチャートの時間範囲を短くする (例: 月次チャートや年次チャートではなく日次チャートや週次チャートを作成)
-
更新頻度を低くする (例: 毎分ではなく毎時更新)。
制限されたキーワード
内部データベースの制限により、Anypoint Custom Metrics Connector を使用しているときに次のキーワードを使用して dimensionName または factName を定義することはできません。
制限されたキーワード
-
ALL -
ALTER -
ANALYZE -
ANY -
AS -
ASC -
BEGIN -
BY -
CREATE -
CONTINUOUS -
DATABASE -
DATABASES -
DEFAULT -
DELETE -
DESC -
DESTINATIONS -
DIAGNOSTICS -
DISTINCT -
DROP -
DURATION -
END -
EVERY -
EXPLAIN -
FIELD -
FOR -
FROM -
GRANT -
GRANTS -
GROUP -
GROUPS -
IN -
INF -
INSERT -
INTO -
KEY -
KEYS -
KILL -
LIMIT -
SHOW -
MEASUREMENT -
MEASUREMENTS -
NAME -
OFFSET -
ON -
ORDER -
PASSWORD -
POLICY -
POLICIES -
PRIVILEGES -
QUERIES -
QUERY -
READ -
REPLICATION -
RESAMPLE -
RETENTION -
REVOKE -
SELECT -
SERIES -
SET -
SHARD -
SHARDS -
SLIMIT -
SOFFSET -
STATS -
SUBSCRIPTION -
SUBSCRIPTIONS -
TAG -
TO -
USER -
USERS -
VALUES -
WHERE -
WITH -
WRITE -
TIME
Anypoint Studio からカスタムメトリクスを設定する
-
Anypoint Monitoring から、次の手順を実行します。
-
[Custom Metrics (カスタムメトリクス)] をクリックします。
-
最新の Mule バージョンの [Custom Metrics Connector] をクリックして、Anypoint Exchange でコネクタを開きます。
-
[Dependency Snippet (連動関係スニペット)] をクリックして、Maven スニペットをコピーします。
-
-
Anypoint Studio で、次のように最新バージョンのコネクタの
<dependency/> スニペットを Mule プロジェクトの pom.xml ファイルの <dependencies/> 要素内に追加します。<dependencies> ... <dependency> <groupId>com.mule.modules</groupId> <artifactId>mule-custom-metrics-extension</artifactId> <version>2.3.1</version> <classifier>mule-plugin</classifier> </dependency> </dependencies>コネクタバージョンの値は、この例とは異なる可能性があります。連動関係を追加すると、コネクタを Studio パレットで使用できるようになります。
このステップで問題が発生した場合、Add Modules to Your Projectを確認し、Studio で Exchange からコネクタを追加してください。
-
パレットから、[Send Custom Metric] 操作をプロジェクトのキャンバスにドラッグします。
-
[Send Custom Metric (カスタムメトリクスを送信)] 操作をクリックして操作の値を追加します。
-
メトリクスのディメンションを次のように追加します。
-
[Metric Name (メトリクス名)] に、わかりやすい値 (「sales」 (営業) など) を入力します。
-
[Enter contextual information (コンテキスト情報を入力)] で、[Edit inline (インライン編集)] を選択してディメンションの名前と値を入力します。
-
左にある緑のプラス記号をクリックして値を入力します。
-
[Dimension (ディメンション)] ダイアログボックスで、ディメンションの [Name (名前)] と [Value (値)] を入力します。
-
[Collapsible (折りたたみ可能)] オプションはデフォルトの [True] のままにします。
-
[Finish (完了)] をクリックします。
この手順を繰り返して複数のキー値を追加できます。
-
-
メトリクスのファクトを入力します。測定の値は数値です。
-
[Enter measurements (測定を入力)] で、[Edit inline (インライン編集)] を選択してメトリクスの名前と値を入力します。
-
[Fact (ファクト)] ダイアログボックスで、ファクトの [Name (名前)] と数値の [Value (値)] を入力します。
ファクトの場合、値は常に数値にする必要があります。これは設計時には検証されませんが、数値以外を入力するとデプロイ後にランタイム例外が発生します。 -
[Collapsible (折りたたみ可能)] オプションはデフォルトの [True] のままにします。
-
[Finish (完了)] をクリックします。
この手順を繰り返して複数のキー値を追加できます。
-
-
メトリクスに無効な値が入力されたらフローを中止する場合は、[Throw runtime exception on validation failure (検証失敗時にランタイム例外をスロー)] オプションを選択します。このオプションをオフのままにすると、エラーはログに記録されますが、フローは中止されません。
Anypoint Monitoring でアプリケーションメトリクスを取得する
-
アプリケーションをデプロイします。
案内については、Deploy Mule Applicationsを参照してください。
-
Anypoint Monitoring で、カスタムメトリクスの新しいカスタムダッシュボードを追加します。
-
カスタムメトリクスを使用するようにチャートを設定します。
案内については、「カスタムダッシュボードへのチャートの追加」を参照してください。
次の例は、T シャツの売上を表示するグラフの設定を示しています。
カスタムメトリクスのログが記録されて初めて、事前入力されたメトリクス選択ドロップダウンリストにカスタムメトリクスが表示されます。
カスタムメトリクスダッシュボードを使用する
アプリケーションフローに Custom Metrics Connector を設定し、アプリケーションをサーバーまたはサーバークラスターにデプロイするまで、アプリケーションのカスタムメトリクスは収集されません。
-
Anypoint Monitoring で、メトリクスを表示するアプリケーションを選択し、[View (表示)] をクリックします。
-
[Custom metrics (カスタムメトリクス)] タブをクリックします。
Custom Metrics Connector が指定された時間範囲内に 1 つ以上のメトリクスを収集した場合、定義されたメトリクスにつき 1 つのチャートが表示されます。
-
[Select a measurement for this chart (このチャートの測定を選択)] をクリックしてチャートの測定を表示します。
-
チャート下部にあるドロップダウンリストを使用して、次の検索条件でデータを絞り込みます。
-
Aggregation (集約) - 次のような集約を選択できます。
-
None (なし) (デフォルト) - データを集約しません。
-
count (件数) - 測定に対して収集された項目の総数を表示します。
-
distinct (個別) - 特定の測定のユニーク値を返します。
-
integral (積分) - 後続値の曲線下面積を返します。
-
mean (平均) - 特定の期間の指定された測定の算術平均を返します。
-
median (中央値) - 収集されたメトリクスの中央値を表示します。
-
mode (最頻値) - 定義された測定について収集されたメトリクスの最頻値を表示します。
-
sum (合計) - 定義された測定のすべての値の合計を表示します。
-
-
Measurement (測定) - このリストの選択肢は、Custom Metrics Connector に定義する測定値によって決まります。
-
Group by (グループ化基準) - このリストの選択肢は、Custom Metrics Connector に定義する値によって決まります。
-