2012年8月20日月曜日

apache qpid - exchange/queue/bindの監視

apache qpid 概要と初期設定
apache qpid 基本的なメッセージ操作
apache qpid アドレスの指定
apache qpid アドレスのオプションキーワード

の続き。

参考にしているのは「Programming in Apache Qpid


詳細な状態確認

コレまでのサンプルで使ってきた qpid-config である程度の状態は確認できる。しかしこのコマンドはqpidを操作することが目的で、詳細な状態確認の機能は備えていない。

これを補うコマンドがいくつかあるので簡単な使い方をメモしておく。


qpid-tool

qpid-toolコマンドは現在定義されているexchange/queue/bindの状態を詳細に確認できる。

$ qpid-tool
Management Tool for QPID
qpid:

実行すると、専用プロンプトが起動する。

■QPIDが持つオブジェクトの一覧を表示する
qpid: list
Summary of Objects by Type:
    Package                 Class         Active  Deleted
    =======================================================
    org.apache.qpid.broker  binding       30      0
    org.apache.qpid.broker  broker        1       0
    org.apache.qpid.broker  memory        1       0
    org.apache.qpid.broker  system        1       0
    org.apache.qpid.broker  subscription  10      0
    org.apache.qpid.broker  connection    2       0
    org.apache.qpid.broker  session       2       0
    org.apache.qpid.broker  queue         14      0
    org.apache.qpid.broker  exchange      11      0
    org.apache.qpid.broker  vhost         1       0

■exchangeの一覧を表示
qpid: list exchange
Object Summary:
    ID   Created   Destroyed  Index
    ==================================================
    135  14:49:05  -          173.
    136  14:49:05  -          173.amq.direct
    137  14:49:05  -          173.amq.fanout
    138  14:49:05  -          173.amq.match
    139  14:49:05  -          173.amq.topic
    140  07:15:14  -          173.hello-world
    141  14:43:46  -          173.my-topic
    142  11:33:05  -          173.news-service
    143  14:49:05  -          173.qmf.default.direct
    144  14:49:05  -          173.qmf.default.topic
    145  14:49:05  -          173.qpid.management

■exchangeの詳細を表示
qpid: show 141
Object of type: org.apache.qpid.broker:exchange:_data(c9bb43df-44ac-63d5-cc1c-6a032025c97d)
    Attribute          141
    =============================
    vhostRef           173
    name               my-topic
    type               topic
    durable            False
    autoDelete         False
    altExchange        absent
    arguments          {}
    producerCount      0
    producerCountHigh  0
    producerCountLow   0
    bindingCount       0
    bindingCountHigh   0
    bindingCountLow    0
    msgReceives        0
    msgDrops           0
    msgRoutes          0
    byteReceives       0
    byteDrops          0
    byteRoutes         0


■queueの一覧を表示
qpid: list queue
Object Summary:
    ID   Created   Destroyed  Index
    ===========================================================
    146  14:43:40  -          173.my-queue
    147  15:15:47  -          173.not-exist-queue
    148  14:02:36  -          173.qmfc-v2-hb-openstack.4254.1
    149  16:56:18  -          173.qmfc-v2-hb-openstack.4697.1
    150  14:02:36  -          173.qmfc-v2-openstack.4254.1
    151  16:56:18  -          173.qmfc-v2-openstack.4697.1
    152  14:02:36  -          173.qmfc-v2-ui-openstack.4254.1
    153  16:56:18  -          173.qmfc-v2-ui-openstack.4697.1
    154  11:38:36  -          173.que-test1
    155  14:02:36  -          173.reply-openstack.4254.1
    156  16:56:18  -          173.reply-openstack.4697.1
    157  14:02:36  -          173.topic-openstack.4254.1
    158  16:56:18  -          173.topic-openstack.4697.1
    159  14:50:21  -          173.xoxox

■queueの詳細を表示
qpid: show 146
Object of type: org.apache.qpid.broker:queue:_data(ea2e430d-fc12-d491-dd53-74da3ba76576)
    Attribute              146
    =================================
    vhostRef               173
    name                   my-queue
    durable                False
    autoDelete             False
    exclusive              False
    arguments              {}
    altExchange            absent
    msgTotalEnqueues       9
    msgTotalDequeues       9
    msgTxnEnqueues         0
    msgTxnDequeues         0
    msgPersistEnqueues     0
    msgPersistDequeues     0
    msgDepth               0
    byteDepth              0
    byteTotalEnqueues      33
    byteTotalDequeues      33
    byteTxnEnqueues        0
    byteTxnDequeues        0
    bytePersistEnqueues    0
    bytePersistDequeues    0
    msgFtdEnqueues         0
    msgFtdDequeues         0
    byteFtdEnqueues        0
    byteFtdDequeues        0
    msgFtdDepth            0
    byteFtdDepth           0
    releases               0
    acquires               9
    discardsTtl            0
    discardsRing           0
    discardsLvq            0
    discardsOverflow       0
    discardsSubscriber     0
    discardsPurge          0
    reroutes               0
    consumerCount          0
    consumerCountHigh      0
    consumerCountLow       0
    bindingCount           1
    bindingCountHigh       1
    bindingCountLow        1
    unackedMessages        0
    unackedMessagesHigh    0
    unackedMessagesLow     0
    messageLatencySamples  0s
    messageLatencyMin      0s
    messageLatencyMax      0s
    messageLatencyAverage  0s
    flowStopped            False
    flowStoppedCount       0

■bindの一覧を表示
qpid: list binding
Object Summary:
    ID   Created   Destroyed  Index
    ==================================================================================
    128  14:02:38  -          145.157.console.obj.*.*.org.apache.qpid.broker.queue.#
    129  14:02:38  -          145.157.schema.#
    130  16:56:20  -          145.158.console.#
    131  16:56:20  -          145.158.schema.#
    102  14:43:40  -          135.146.my-queue
    103  15:15:47  -          135.147.not-exist-queue
    104  14:02:36  -          135.148.qmfc-v2-hb-openstack.4254.1
    105  16:56:18  -          135.149.qmfc-v2-hb-openstack.4697.1
    106  14:02:36  -          135.150.qmfc-v2-openstack.4254.1
    107  16:56:18  -          135.151.qmfc-v2-openstack.4697.1
    108  14:02:36  -          135.152.qmfc-v2-ui-openstack.4254.1
    109  16:56:18  -          135.153.qmfc-v2-ui-openstack.4697.1
    110  11:38:36  -          135.154.que-test1
    111  14:02:36  -          135.155.reply-openstack.4254.1
    112  16:56:18  -          135.156.reply-openstack.4697.1
    113  14:02:36  -          135.157.topic-openstack.4254.1
    114  16:56:18  -          135.158.topic-openstack.4697.1
    115  14:50:21  -          135.159.xoxox
    116  14:02:36  -          136.155.reply-openstack.4254.1
    117  16:56:18  -          136.156.reply-openstack.4697.1
    118  14:02:36  -          143.150.qmfc-v2-openstack.4254.1
    119  16:56:18  -          143.151.qmfc-v2-openstack.4697.1
    120  14:02:38  -          144.148.agent.ind.heartbeat.org_apache.qpidd.#
    121  16:56:20  -          144.149.agent.ind.heartbeat.#
    122  14:02:38  -          144.152.agent.ind.data.org_apache_qpid_broker.queue.#
    123  16:56:20  -          144.153.agent.ind.data.#
    124  16:56:20  -          144.153.agent.ind.event.#
    125  14:02:38  -          145.157.console.event.*.*.org.apache.qpid.broker.agent
    126  14:02:38  -          145.157.console.heartbeat.#
    127  14:02:38  -          145.157.console.obj.*.*.org.apache.qpid.broker.agent

■bindの詳細を表示
qpid: show 102
Object of type: org.apache.qpid.broker:binding:_data(79311b0b-4077-92c0-2001-79e75225daa3)
    Attribute    102
    =======================
    exchangeRef  135
    queueRef     146
    bindingKey   my-queue
    arguments    {}
    origin       absent
    msgMatched   9


exaches - bind - queue の連結を確認する

これにはqpid-configに-rオプションをつけて利用する。

$ qpid-config exchanges -r
Exchange '' (direct)
    bind [b1960482-499d-4f92-8117-702f1523130b:0.0] => b1960482-499d-4f92-8117-702f1523130b:0.0
    bind [qmfc-v2-hb-openstack.4254.1] => qmfc-v2-hb-openstack.4254.1
    bind [qmfc-v2-hb-openstack.4807.1] => qmfc-v2-hb-openstack.4807.1
    bind [qmfc-v2-openstack.4254.1] => qmfc-v2-openstack.4254.1
    bind [qmfc-v2-openstack.4807.1] => qmfc-v2-openstack.4807.1
    bind [qmfc-v2-ui-openstack.4254.1] => qmfc-v2-ui-openstack.4254.1
    bind [qmfc-v2-ui-openstack.4807.1] => qmfc-v2-ui-openstack.4807.1
    bind [reply-openstack.4254.1] => reply-openstack.4254.1
    bind [reply-openstack.4807.1] => reply-openstack.4807.1
    bind [topic-openstack.4254.1] => topic-openstack.4254.1
    bind [topic-openstack.4807.1] => topic-openstack.4807.1
Exchange 'amq.direct' (direct)
    bind [reply-openstack.4254.1] => reply-openstack.4254.1
    bind [reply-openstack.4807.1] => reply-openstack.4807.1
Exchange 'amq.fanout' (fanout)
Exchange 'amq.match' (headers)
Exchange 'amq.topic' (topic)
Exchange 'qmf.default.direct' (direct)
    bind [qmfc-v2-openstack.4254.1] => qmfc-v2-openstack.4254.1
    bind [qmfc-v2-openstack.4807.1] => qmfc-v2-openstack.4807.1
Exchange 'qmf.default.topic' (topic)
    bind [direct.e199bad9-5500-4c55-8cce-901e16956457] => b1960482-499d-4f92-8117-702f1523130b:0.0
    bind [agent.ind.heartbeat.org_apache.qpidd.#] => qmfc-v2-hb-openstack.4254.1
    bind [agent.ind.heartbeat.#] => qmfc-v2-hb-openstack.4807.1
    bind [agent.ind.data.org_apache_qpid_broker.queue.#] => qmfc-v2-ui-openstack.4254.1
    bind [agent.ind.event.#] => qmfc-v2-ui-openstack.4807.1
Exchange 'qpid.management' (topic)
    bind [console.event.*.*.org.apache.qpid.broker.agent] => topic-openstack.4254.1
    bind [console.heartbeat.#] => topic-openstack.4254.1
    bind [console.obj.*.*.org.apache.qpid.broker.agent] => topic-openstack.4254.1
    bind [console.obj.*.*.org.apache.qpid.broker.queue.#] => topic-openstack.4254.1
    bind [schema.#] => topic-openstack.4254.1
    bind [console.event.#] => topic-openstack.4807.1
    bind [console.obj.*.*.org.apache.qpid.broker.agent] => topic-openstack.4807.1
    bind [schema.#] => topic-openstack.4807.1

$ qpid-config queues -r
Queue '54c949ad-a3ac-4b1c-9d13-5f58279c987c:0.0'
    bind [54c949ad-a3ac-4b1c-9d13-5f58279c987c:0.0] => ''
    bind [direct.5950919e-ed14-4e39-89f4-d7a55d4b901e] => qmf.default.topic
Queue 'qmfc-v2-hb-openstack.4254.1'
    bind [qmfc-v2-hb-openstack.4254.1] => ''
    bind [agent.ind.heartbeat.org_apache.qpidd.#] => qmf.default.topic
Queue 'qmfc-v2-hb-openstack.4807.1'
    bind [qmfc-v2-hb-openstack.4807.1] => ''
    bind [agent.ind.heartbeat.#] => qmf.default.topic
Queue 'qmfc-v2-openstack.4254.1'
    bind [qmfc-v2-openstack.4254.1] => ''
    bind [qmfc-v2-openstack.4254.1] => qmf.default.direct
Queue 'qmfc-v2-openstack.4807.1'
    bind [qmfc-v2-openstack.4807.1] => ''
    bind [qmfc-v2-openstack.4807.1] => qmf.default.direct
Queue 'qmfc-v2-ui-openstack.4254.1'
    bind [qmfc-v2-ui-openstack.4254.1] => ''
    bind [agent.ind.data.org_apache_qpid_broker.queue.#] => qmf.default.topic
Queue 'qmfc-v2-ui-openstack.4807.1'
    bind [qmfc-v2-ui-openstack.4807.1] => ''
    bind [agent.ind.event.#] => qmf.default.topic
Queue 'reply-openstack.4254.1'
    bind [reply-openstack.4254.1] => ''
    bind [reply-openstack.4254.1] => amq.direct
Queue 'reply-openstack.4807.1'
    bind [reply-openstack.4807.1] => ''
    bind [reply-openstack.4807.1] => amq.direct
Queue 'topic-openstack.4254.1'
    bind [topic-openstack.4254.1] => ''
    bind [console.event.*.*.org.apache.qpid.broker.agent] => qpid.management
    bind [console.heartbeat.#] => qpid.management
    bind [console.obj.*.*.org.apache.qpid.broker.agent] => qpid.management
    bind [console.obj.*.*.org.apache.qpid.broker.queue.#] => qpid.management
    bind [schema.#] => qpid.management
Queue 'topic-openstack.4807.1'
    bind [topic-openstack.4807.1] => ''
    bind [console.event.#] => qpid.management
    bind [console.obj.*.*.org.apache.qpid.broker.agent] => qpid.management
    bind [schema.#] => qpid.management


qpid-printevents

qpid-printevents はqpidへ接続して接続してくるクライアントの状態等を出力してくれる。

$ qpid-printevents
Sun Aug 19 17:36:12 2012 INFO  org.apache.qpid.broker:subscribe broker=localhost:5672 rhost=[::1]:5672-[::1]:49999 user=anonymous@QPID qName=qmfc-v2-openstack.5072.1 dest=v2dest excl=F args={}
Sun Aug 19 17:36:12 2012 INFO  org.apache.qpid.broker:subscribe broker=localhost:5672 rhost=[::1]:5672-[::1]:49999 user=anonymous@QPID qName=qmfc-v2-ui-openstack.5072.1 dest=v2TopicUI excl=F args={}
Sun Aug 19 17:36:12 2012 INFO  org.apache.qpid.broker:subscribe broker=localhost:5672 rhost=[::1]:5672-[::1]:49999 user=anonymous@QPID qName=qmfc-v2-hb-openstack.5072.1 dest=v2TopicHB excl=F args={}
Sun Aug 19 17:36:14 2012 INFO  org.apache.qpid.broker:bind broker=localhost:5672 rhost=[::1]:5672-[::1]:49999 user=anonymous@QPID exName=qpid.management qName=topic-openstack.5072.1 key=schema.# args={}
Sun Aug 19 17:36:14 2012 INFO  org.apache.qpid.broker:bind broker=localhost:5672 rhost=[::1]:5672-[::1]:49999 user=anonymous@QPID exName=qpid.management qName=topic-openstack.5072.1 key=console.obj.*.*.org.apache.qpid.broker.agent args={}
Sun Aug 19 17:36:14 2012 INFO  org.apache.qpid.broker:bind broker=localhost:5672 rhost=[::1]:5672-[::1]:49999 user=anonymous@QPID exName=qpid.management qName=topic-openstack.5072.1 key=console.event.# args={}
Sun Aug 19 17:36:14 2012 INFO  org.apache.qpid.broker:bind broker=localhost:5672 rhost=[::1]:5672-[::1]:49999 user=anonymous@QPID exName=qpid.management qName=topic-openstack.5072.1 key=console.heartbeat.# args={}
Sun Aug 19 17:36:14 2012 INFO  org.apache.qpid.broker:bind broker=localhost:5672 rhost=[::1]:5672-[::1]:49999 user=anonymous@QPID exName=qmf.default.topic qName=qmfc-v2-hb-openstack.5072.1 key=agent.ind.heartbeat.# args={}
Sun Aug 19 17:36:14 2012 INFO  org.apache.qpid.broker:bind broker=localhost:5672 rhost=[::1]:5672-[::1]:49999 user=anonymous@QPID exName=qmf.default.topic qName=qmfc-v2-ui-openstack.5072.1 key=agent.ind.event.# args={}


qpid-queue-stats

いまいち使い道がわからない。

$ qpid-queue-stats -f my-queue
Queue Name             Sec       Depth     Enq Rate     Deq Rate
===================================================================
my-queue              10.00          0         0.20         0.20
my-queue              30.00          0         0.07         0.07


qpid-stats

ざっくりとした統計情報を出力できる。

$ qpid-stat -h
Usage: qpid-stat [options] -[gcequm] [object-name]

Options:
  -h, --help            show this help message and exit

  General Options:
    -b <url>, --broker=<url>
                        URL of the broker to query
    -t <secs>, --timeout=<secs>
                        Maximum time to wait for broker connection (in
                        seconds)
    --sasl-mechanism=<mech>
                        SASL mechanism for authentication (e.g. EXTERNAL,
                        ANONYMOUS, PLAIN, CRAM-MD, DIGEST-MD5, GSSAPI). SASL
                        automatically picks the most secure available
                        mechanism - use this option to override.
    --ha-admin          Allow connection to a HA backup broker.

  Display Options:
    -g, --general       Show General Broker Stats
    -c, --connections   Show Connections
    -e, --exchanges     Show Exchanges
    -q, --queues        Show Queues
    -u, --subscriptions
                        Show Subscriptions
    -m, --memory        Show Broker Memory Stats
    --acl               Show Access Control List Stats
    -S <colname>, --sort-by=<colname>
                        Sort by column name
    -I, --increasing    Sort by increasing value (default = decreasing)
    -L <n>, --limit=<n>
                        Limit output to n rows


その他のツール

qpid-toolsには他にもコマンドが含まれている。これから調査する予定。
$ rpm -ql qpid-tools
/usr/bin/qmf-tool
/usr/bin/qpid-cluster
/usr/bin/qpid-cluster-store
/usr/bin/qpid-config
/usr/bin/qpid-printevents
/usr/bin/qpid-queue-stats
/usr/bin/qpid-route
/usr/bin/qpid-stat
/usr/bin/qpid-tool
/usr/lib/python2.7/site-packages/qpid_tools-0.16-py2.7.egg-info
/usr/share/doc/qpid-tools-0.16
/usr/share/doc/qpid-tools-0.16/LICENSE
/usr/share/doc/qpid-tools-0.16/NOTICE

0 件のコメント:

コメントを投稿