Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerRuntime Manager エージェント JMX サービスを使用すると、特定の JMX メトリクスを追跡し、それらを外部サービスにパブリッシュできます。サービスを設定して、特定の bean を追跡したり、値をパブリッシュする頻度を変更したりできます。
Runtime Manager エージェントでは、Mule 3.x のみで mule.agent.jmx.publisher.service を使用した JMX bean の監視をサポートしています。
Mule 4.x では、bean が JMX に公開されません。
|
JMX サービスは、収集したすべてのメトリクスをパブリッシャーに送信し、パブリッシャーはメトリクスを外部監視ツールにパブリッシュします。サービス自体に、一般的に使用されるツール用のパブリッシャー例がいくつか用意されています。さらに、ニーズに合わせて独自のパブリッシャーを作成できます。
JMX サービス設定を取得します。
要求:
GET <Runtime Manager Agent URL>/mule/agent/mule.agent.jmx.publisher.service HTTP/1.1
例:
GET http://localhost:9999/mule/agent/mule.agent.jmx.publisher.service HTTP/1.1
応答:
{
"serviceHandlerTypes": [
"java.util.List<com.mulesoft.agent.domain.monitoring.Metric>"
],
"injectedHandlers": [
{
"name": "com.mulesoft.agent.monitoring.publisher.CloudwatchMonitorPublisher",
"path": "/mule/agent/cloudwatch.agent.monitor.publisher/configuration",
"type": "java.util.List<com.mulesoft.agent.domain.monitoring.Metric>"
},
{
"name": "com.mulesoft.agent.monitoring.publisher.GraphiteMonitorPublisher",
"path": "/mule/agent/mule.agent.graphite.jmx.internal.handler/configuration",
"type": "java.util.List<com.mulesoft.agent.domain.monitoring.Metric>"
},
{
"name": "com.mulesoft.agent.monitoring.publisher.NagiosMonitorPublisher",
"path": "/mule/agent/mule.agent.nagios.jmx.internal.handler/configuration",
"type": "java.util.List<com.mulesoft.agent.domain.monitoring.Metric>"
},
{
"name": "com.mulesoft.agent.monitoring.publisher.ZabbixMonitorPublisher",
"path": "/mule/agent/mule.agent.zabbix.jmx.internal.handler/configuration",
"type": "java.util.List<com.mulesoft.agent.domain.monitoring.Metric>"
}
],
"configurableFields": [
{
"name": "frequency",
"valueType": "java.lang.Integer",
"value": 15,
"configurableType": "DYNAMIC"
},
{
"name": "frequencyTimeUnit",
"valueType": "java.util.concurrent.TimeUnit",
"value": "MINUTES",
"configurableType": "DYNAMIC"
},
{
"name": "beans",
"valueType": "[Lcom.mulesoft.agent.services.monitoring.JMXBean;",
"value": [],
"configurableType": "DYNAMIC"
}
]
}
応答には、現在読み込まれているパブリッシャーのリストに加え、サービスの設定可能な項目とその値が含まれています (サービスの設定についての詳細は、「管理サービス」を参照してください)。
次の操作は、サービスの現在の設定を変更します。
要求:
PATCH <Runtime Manager Agent URL>/mule/agent/mule.agent.jmx.publisher.service HTTP/1.1
{
"<parameter>": "<value>",
}
例:
PATCH http://localhost:9999/mule/agent/myservice HTTP/1.1
{
"frequencyTimeUnit": "SECONDS",
"frequency": "150"
}
応答 (成功した場合):
HTTP 200
新しい JMX パブリッシャーを追加するには、Runtime Manager エージェントの InternalMessageHandler
インターフェースを実装します。
カスタム JMX パブリッシャーは、次の要件を満たす必要があります。
スレッドセーフである。
InternalMessageHandler
で定義されたハンドラーメソッドのすべてのパブリッシュロジックを実装している。
@Named("my.company.jmx.publisher")
@Singleton
public class MyJMXPublisher<T> extends InternalMessageHandler<List<Metric>>{
boolean handle(List<Metric> metrics){
// TODO handle message
}
@Override
public void enable(boolean state) throws AgentEnableOperationException {
// TODO: enable the Handler
}
@Override
public boolean isEnabled() {
// TODO: return Handler status
}
}
メトリクスクラスは次の項目を含む POJO です。
/**
* Time stamp when the metric was taken
*/
long timestamp;
/**
* Name of the metric. In the case of a JXM metric it is the bean that was tracked + message
*/
String name;
/**
* The numeric value of the metric
*/
Number value;
新しい JMX パブリッシャーを追加するには、クラスを含む JAR を Runtime Manager エージェントプラグイン内の lib
フォルダーに置きます。