Supported OS Linux Windows Mac OS

インテグレーションバージョン1.1.0

概要

EMQX は IoT (モノのインターネット) 向けに設計された高い拡張性を備えるオープンソースの MQTT ブローカーです。MQTT は Message Queuing Telemetry Transport の略で、デバイス間でメッセージを転送する軽量なパブリッシュ・サブスクライブ型ネットワークプロトコルです。

EMQX の主な特徴:

  • 拡張性: EMQX は数百万もの同時接続を処理でき、大量のデバイスを扱う IoT アプリケーションに適しています。
  • 信頼性: デバイスとサーバー間のデータが確実に転送されるよう、安定かつ信頼性の高いメッセージ配信を提供します。
  • 低レイテンシ: 低レイテンシが求められるシナリオに適した設計です。
  • 高スループット: 大量のメッセージを効率的に処理できます。
  • クラスタリング: 分散クラスターでのデプロイが可能で、パフォーマンスと信頼性を高めます。

Datadog と EMQX を連携させることで監視能力が拡張され、MQTT ブローカーのパフォーマンスや稼働状況に関する貴重なインサイトが得られます。これは効率的かつ信頼性が高く、リアルタイムのデータ転送が重要となる IoT アプリケーションで特に有用です。

Datadog に送信されるデータの種類:

  • メトリクス: メッセージスループット (1秒あたりの送受信メッセージ数) 、接続クライアント数などのパフォーマンス指標を含みます。

  • ノードのパフォーマンス: クラスター内の各ノードのパフォーマンス監視 (レイテンシ、負荷、稼働状況など)。

  • 運用健全性: MQTT ブローカーのヘルス状態に関するデータ (エラーレートなどの重要指標を含む)。

セットアップ

インストール

EMQX チェックを手動でインストールする場合 (使用環境によって手順が変わる可能性があります):

datadog-agent integration install -t datadog-emqx==1.1.0 を実行します。

構成

  1. Agent の設定ディレクトリ (conf.d/フォルダ) のルートにある emqx/conf.yaml ファイルを編集し、EMQX のパフォーマンスデータ収集を開始します。

  2. Agent を再起動します

検証

Agent のステータスサブコマンドを実行し、Checks セクションに emqx が表示されることを確認します。

収集データ

メトリクス

emqx.connections.count
(gauge)
Number of connection
emqx.live.connections.count
(gauge)
Number of live connection
emqx.sessions.count
(gauge)
Number of session
emqx.topics.count
(gauge)
Number of topic
emqx.suboptions.count
(gauge)
Number of subcribe options
emqx.subscribers.count
(gauge)
Number of subscriptions
emqx.subscriptions.count
(gauge)
Number of subsctriptions
emqx.subscriptions.shared.count
(gauge)
Number of shared subscriptions
emqx.retained.count
(gauge)
Number of retainer message
emqx.delayed.count
(gauge)
Number of Delayed message
emqx.vm.cpu.use
(gauge)
The CPU utilized by the virtual machine.
emqx.vm.cpu.idle
(gauge)
The CPU idle by the virtual machine.
emqx.vm.run_queue
(gauge)
The total length of all normal and dirty CPU run queues.
emqx.vm.process.messages_in_queues
(gauge)
The total Number of all client message queue.
emqx.vm.total_memory
(gauge)
The total amount of memory available to the Erlang emulator, allocated and free. May or may not be equal to the amount of memory configured in the system.
Shown as byte
emqx.vm.used_memory
(gauge)
The current size of the memory being used.
Shown as byte
emqx.cluster.nodes_running
(gauge)
The number of nodes currently running in the cluster.
emqx.cluster.nodes_stopped
(gauge)
The number of nodes currently stopped in the cluster.
emqx.bytes.received.count
(count)
The traffic bytes received.
Shown as byte
emqx.bytes.sent.count
(count)
The traffic bytes sent
Shown as byte
emqx.packets.received.count
(count)
The number of data packets transmitted
emqx.packets.sent.count
(count)
The number of data packets received
emqx.packets.connack.sent.count
(count)
The number of connack packets sent
emqx.packets.connect.count
(count)
The number of connect packets received
emqx.packets.connack.error.count
(count)
The number of connack error packets sent
emqx.packets.connack.auth_error.count
(count)
The number of connack auth_error packets sent
emqx.packets.publish.received.count
(count)
The number of publish packets received
emqx.packets.publish.sent.count
(count)
The number of publish packets sent
emqx.packets.publish.inuse.count
(count)
The number of publish packets with packetidentifterin_use error
emqx.packets.publish.error.count
(count)
The number of publish packets error
emqx.packets.publish.auth_error.count
(count)
The number of publish packets auth error
emqx.packets.publish.dropped.count
(count)
The number of publish packets dropped
emqx.packets.puback.received.count
(count)
The number of puback receive packets
emqx.packets.puback.sent.count
(count)
The number of puback sent packets
emqx.packets.puback.inuse.count
(count)
The number of puback infuse error packets
emqx.packets.puback.missed.count
(count)
The number of puback missed error packets
emqx.packets.pubrec.received.count
(count)
The number of pubrec packets received
emqx.packets.pubrec.sent.count
(count)
The number of pubrec packets sent
emqx.packets.pubrec.inuse.count
(count)
The number of pubrec packets infuse error
emqx.packets.pubrec.missed.count
(count)
The number of pubrec packets missed error
emqx.packets.pubrel.received.count
(count)
The number of pubrel packets received
emqx.packets.pubrel.sent.count
(count)
The number of pubrel packets sent
emqx.packets.pubrel.missed.count
(count)
The number of pubrel packets missed
emqx.packets.pubcomp.received.count
(count)
The number of pubcomp packets received
emqx.packets.pubcomp.sent.count
(count)
The number of pubcomp packets sent
emqx.packets.pubcomp.inuse.count
(count)
The number of pubcomp packets infuse error
emqx.packets.pubcomp.missed.count
(count)
The number of pubcomp packets missed
emqx.packets.subscribe.received.count
(count)
The number of subscribe packets received
emqx.packets.subscribe.error.count
(count)
The number of error subscribe packets
emqx.packets.subscribe.auth_error.count
(count)
The number of auth error subscribe packets
emqx.packets.suback.sent.count
(count)
The number of suback packets sent
emqx.packets.unsuback.sent.count
(count)
The number of unsuback packets sent
emqx.packets.unsubscribe.received.count
(count)
The number of unsubscribe packets received
emqx.packets.unsubscribe.error.count
(count)
The number of error unsubscribe packets
emqx.packets.pingreq.received.count
(count)
The number of pingreq packets received
emqx.packets.pingresp.sent.count
(count)
The number of pingresp packets sent
emqx.packets.disconnect.received.count
(count)
The number of disconnect packets received
emqx.packets.disconnect.sent.count
(count)
The number of disconnect packets sent
emqx.packets.auth.received.count
(count)
The number of auth packets received
emqx.packets.auth.sent.count
(count)
The number of auth packets sent
emqx.messages.received.count
(count)
The number of messages received
emqx.messages.sent.count
(count)
The number of messages sent
emqx.messages.qos0.received.count
(count)
The number of qos0 messages received
emqx.messages.qos0.sent.count
(count)
The number of qos0 messages sent
emqx.messages.qos1.received.count
(count)
The number of qos1 messages received
emqx.messages.qos1.sent.count
(count)
The number of qos1 messages sent
emqx.messages.qos2.received.count
(count)
The number of qos2 messages received
emqx.messages.qos2.sent.count
(count)
The number of qos2 messages sent
emqx.messages.publish.count
(count)
The number of messages published
emqx.messages.dropped.count
(count)
The number of messages dropped
emqx.messages.dropped.expired.count
(count)
The number of expired messages dropped
emqx.messages.dropped.no_subscribers.count
(count)
The number of no_subscribers messages dropped
emqx.messages.forward.count
(count)
The number of forward messages
emqx.messages.retained.count
(count)
The number of retained messages sent
emqx.messages.delayed.count
(count)
The number of delayed messages sent
emqx.messages.delivered.count
(count)
The number of messages delivered
emqx.messages.acked.count
(count)
The number of acked messages
emqx.delivery.dropped.count
(count)
The number of total dropped messages
emqx.delivery.dropped.no_local.count
(count)
The number of no_local delivery messages dropped
emqx.delivery.dropped.too_large.count
(count)
The number of too_large delivery messages dropped
emqx.delivery.dropped.qos0.msg.count
(count)
The number of qos0 delivery messages dropped
emqx.delivery.dropped.queue_full.count
(count)
The number of queue_full delivery messages dropped
emqx.delivery.dropped.expired.count
(count)
The number of expired delivery messages dropped
emqx.client.connect.count
(count)
The number of the client_connect hook has been executed
emqx.client.connack.count
(count)
The number of the client_connack hook has been executed
emqx.client.connected.count
(count)
The number of the client_connected hook has been executed
emqx.client.authenticate.count
(count)
The number of the client_authenticated hook has been executed
emqx.client.auth_anonymous.count
(count)
The number of clients who connected in anonymously
emqx.client.authorize.count
(count)
The number of the client_authorize hook has been executed
emqx.client.subscribe.count
(count)
The number of the client_subscribe hook has been executed
emqx.client.unsubscribe.count
(count)
The number of the client_unsubscribe hook has been executed
emqx.client.disconnected.count
(count)
The number of the client_disconnected hook has been executed
emqx.session.created.count
(count)
The number of the session_created hook has been executed
emqx.session.resumed.count
(count)
The number of the session_resumed hook has been executed
emqx.session.takenover.count
(count)
The number of the session_takenover hook has been executed
emqx.session.discarded.count
(count)
The number of the session_discarded hook has been executed
emqx.session.terminated.count
(count)
The number of the session_terminated hook has been executed
emqx.authorization.allow.count
(count)
The number of successful(allow) authorizations
emqx.authorization.deny.count
(count)
The number of failed(deny) authorizations
emqx.authorization.cache_hit.count
(count)
The number of authorizations with cache
emqx.authorization.superuser.count
(count)
The number of authorizations with superuser
emqx.authorization.nomatch.count
(count)
The number of failed authorizations with no match
emqx.authorization.matched_allow.count
(count)
The number of match allow authorizations
emqx.authorization.matched_deny.count
(count)
The number of match deny authorizations
emqx.authentication.success.count
(count)
The number of success authorizations
emqx.authentication.success_anonymous.count
(count)
The number of success authorizations with anonymous
emqx.authentication.failure.count
(count)
The number of failed authentication
emqx.mria.last_intercepted_trans
(gauge)
The number of latest intercepted transaction on core node
emqx.mria.weight
(gauge)
The weight of mria's traffic in cluster
emqx.mria.replicants
(gauge)
The number of replicants report by mria in cluster
emqx.mria.server.mql
(gauge)
The messages that have not yet been processed in the mria shard.

イベント

EMQX ではイベントは送信されません。

トラブルシューティング

サポートが必要な場合は EMQX サポートへお問い合わせください。

PREVIEWING: maxime/fix-typo-secret-doc