Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerAnypoint Runtime Manager エージェントでは、バッファをサポートする内部ハンドラーを簡単な方法で実装できます。このドキュメントでは、Runtime Manager エージェントの内部ハンドラーのバッファを実装し、設定する方法について説明します。
バッファ付き内部ハンドラーを実装するには、BufferedHandler<T> 抽象クラスを拡張する必要があります。上書きするメソッドは次のとおりです。
boolean canHandle(T message)
メッセージが内部ハンドラーによって処理可能であれば true を返します。
boolean flush(Collection<T> collectionOfMessages)
バッファに保存されているメッセージを外部サービスに送信する実装を提供します。
@Named("com.mulesoft.agent.mypublisher")
@Singleton
public class MyPublisher extends BufferedHandler<List<Metric>>
{
    @Configurable(value = "mule")
    String metricPrefix;
    @Inject
    public MyPublisher()
    {
        super();
    }
    public MyPublisher(OnOffSwitch enabledSwitch)
    {
        super();
        this.enabledSwitch = enabledSwitch;
    }
    @Override
    public boolean canHandle(@NotNull List<Metric> metrics)
    {
        // Evaluates if the message could be handled
    }
    @Override
    public boolean flush(@NotNull Collection<List<Metric>> listOfMetrics)
    {
        // Send messages to external service
    }
}
内部ハンドラーにバッファサポートが含まれる場合は、mule-agent.yml ファイル内でバッファを設定できます。次の表は、使用可能な設定パラメーターを示しています。
| 項目 | 説明 | デフォルト値 | 
|---|---|---|
  | 
バッファ種別。有効な値は、  | 
|
  | 
フラッシュメソッドで例外が発生した後に再試行する回数。  | 
|
  | 
バッファに保持するイベントの最大数。  | 
|
  | 
フラッシュメソッドを実行する頻度 (ミリ秒)。  | 
|
  | 
バッファファイルへのパス。種別が   | 
  | 
  | 
バッファが枯渇したときに従う戦略。指定しない場合、バッファは自動的に拡張されます。有効な値は、  | 
なし  | 
  | 
  | 
  | 
  | 
true の場合、フラッシュが成功しなかったときにはメッセージがバッファに返されません。  | 
  | 
| 
 バッファの最大容量は、バイト数ではなくイベント数に基づいて設定されます。イベントのサイズが大きく、  | 
DISK (ディスク) バッファを設定した場合は、I/O 操作のパフォーマンスを改善するために、メモリ内バッファもインスタンス化されます。デフォルトでは、メモリバッファのイベント数は 10000 で、500 ミリ秒ごとにディスクにフラッシュし、各バッチには 10000 件のイベントが含まれます。これらの値は、それぞれシステムプロパティ agent.disk.buffering.cache.size、agent.disk.buffering.cache.flush.frequency、agent.disk.buffering.max.flushing.size で設定できます。
ディスクから外部システムへの 10000 件ずつのバッチのフラッシュと、agent.disk.buffering.max.flushing.size プロパティは、Mule エージェントプラグインの 2.1.9 および 1.11.3 以降でサポートされています。
 | 
mule-agent.yml ファイル---
muleInstanceUniqueId: validId
organizationId: organizationId
transports:
    websocket.transport:
        security:
            keyStorePassword: mykeystorePassword
            keyStoreAlias: agent
            keyStoreAliasPassword: agentpassword
    rest.agent.transport:
        security:
            keyStorePassword: mykeystorePassword
            keyStoreAlias: agent
            keyStoreAliasPassword: agentpassword
        port: 9997
services:
    mule.agent.application.service:
        enabled: true
    mule.agent.domain.service:
        enabled: true
    mule.agent.jmx.publisher.service:
        enabled: true
        frequency: 15
        frequencyTimeUnit: MINUTES
        beans:
            -   beanQueryPattern: java.lang:type=Runtime
                attribute: Uptime
                monitorMessage: Monitoring memory up-time
            -   beanQueryPattern: java.lang:type=MemoryPool,*
                attribute: Usage.used
                monitorMessage" : Used Memory
internalHandlers:
    domaindeploymentnotification.internal.message.handler:
        enabled: true
    applicationdeploymentnotification.internal.message.handler:
        enabled: false
    com.mulesoft.agent.test.buffering.jmx.internal.handler:
        enabled: true
        buffer:
            type: DISK
            retryCount: 1
            flushFrequency: 10000
            maximumCapacity: 30
            filePath: publisher-buffer.log
externalHandlers:
    applications.request.handler:
        enabled: true
    domains.request.handler:
        enabled: true
---
muleInstanceUniqueId: validId
organizationId: organizationId
transports:
    websocket.transport:
        security:
            keyStorePassword: mykeystorePassword
            keyStoreAlias: agent
            keyStoreAliasPassword: agentpassword
    rest.agent.transport:
        security:
            keyStorePassword: mykeystorePassword
            keyStoreAlias: agent
            keyStoreAliasPassword: agentpassword
        port: 9997
services:
    mule.agent.application.service:
        enabled: true
    mule.agent.domain.service:
        enabled: true
    mule.agent.jmx.publisher.service:
        enabled: true
        frequency: 15
        frequencyTimeUnit: MINUTES
        beans:
            -   beanQueryPattern: java.lang:type=Runtime
                attribute: Uptime
                monitorMessage: Monitoring memory up-time
            -   beanQueryPattern: java.lang:type=MemoryPool,*
                attribute: Usage.used
                monitorMessage" : Used Memory
internalHandlers:
    domaindeploymentnotification.internal.message.handler:
        enabled: true
    applicationdeploymentnotification.internal.message.handler:
        enabled: false
    tracking.notification.internal.message.handler:
        enabled: true
        buffer:
            type: MEMORY
            retryCount: 1
            flushFrequency: 10000
            maximumCapacity: 30
externalHandlers:
    applications.request.handler:
        enabled: true
    domains.request.handler:
        enabled: true