[
https://issues.apache.org/jira/browse/STORM-367?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14043528#comment-14043528
]
ASF GitHub Bot commented on STORM-367:
--------------------------------------
Github user revans2 commented on a diff in the pull request:
https://github.com/apache/incubator-storm/pull/157#discussion_r14188180
--- Diff: STORM-UI-REST-API.md ---
@@ -0,0 +1,513 @@
+# Storm UI REST API
+Storm UI server provides a REST Api to access cluster, topology, component
overview and metrics.
+This api returns json response.
+
+## Using the UI REST Api
+
+### /api/v1/cluster/configuration (GET)
+ returns cluster configuration.
+
+Sample Response:
+```json
+ {
+ "dev.zookeeper.path": "/tmp/dev-storm-zookeeper",
+ "topology.tick.tuple.freq.secs": null,
+ "topology.builtin.metrics.bucket.size.secs": 60,
+ "topology.fall.back.on.java.serialization": true,
+ "topology.max.error.report.per.interval": 5,
+ "zmq.linger.millis": 5000,
+ "topology.skip.missing.kryo.registrations": false,
+ "storm.messaging.netty.client_worker_threads": 1,
+ "ui.childopts": "-Xmx768m",
+ "storm.zookeeper.session.timeout": 20000,
+ "nimbus.reassign": true,
+ "topology.trident.batch.emit.interval.millis": 500,
+ "storm.messaging.netty.flush.check.interval.ms": 10,
+ "nimbus.monitor.freq.secs": 10,
+ "logviewer.childopts": "-Xmx128m",
+ "java.library.path": "/usr/local/lib:/opt/local/lib:/usr/lib",
+ "topology.executor.send.buffer.size": 1024,
+ }
+```
+
+### /api/v1/cluster/summary (GET)
+returns cluster summary such as nimbus uptime,number of supervisors,slots
etc..
+
+Response Fields:
+
+|Field |Description|
+|--- |--- |
+|stormVersion| Storm version|
+|nimbusUptime| Shows how long the cluster is running|
+|supervisors| Number of supervisors running|
+|slotsTotal| Total number of available worker slots|
+|slotsUsed| Number of worker slots used|
+|slotsFree| Number of worker slots available|
+|executorsTotal| Total number of executors|
+|tasksTotal| Total tasks|
+
+Sample Response:
+```json
+ {
+ "stormVersion": "0.9.2-incubating-SNAPSHOT",
+ "nimbusUptime": "3m 53s",
+ "supervisors": 1,
+ "slotsTotal": 4,
+ "slotsUsed": 3,
+ "slotsFree": 1,
+ "executorsTotal": 28,
+ "tasksTotal": 28
+ }
+```
+
+### /api/v1/supervisor/summary (GET)
+returns all supervisors summary
+
+Response Fields:
+
+|Field |Description|
+|--- |--- |
+|id| Supervisor's id|
+|host| Supervisor's host name|
+|uptime| Shows how long the supervisor is runninge|
+|slotsTotal| Total number of available worker slots for this supervisor|
+|slotsUsed| Number of worker slots used on this supervisor|
+
+Sample Response:
+```json
+{
+ "supervisors": [
+ {
+ "id": "0b879808-2a26-442b-8f7d-23101e0c3696",
+ "host": "10.11.1.7",
+ "uptime": "5m 58s",
+ "slotsTotal": 4,
+ "slotsUsed": 3
+ }
+ ]
+}
+```
+
+### /api/v1/topology/summary (GET)
+Returns all topologies summary
+
+Response Fields:
+
+|Field |Description|
+|--- |--- |
+|id| Topology Id|
+|name| Topology Name|
+|uptime| Shows how long the topology is running|
+|tasksTotal| Total number of tasks for this topology|
+|workersTotal| Number of workers used for this topology|
+|executorsTotal| Number of executors used for this topology|
+
+Sample Response:
+```json
+{
+ "topologies": [
+ {
+ "id": "WordCount3-1-1402960825",
+ "name": "WordCount3",
+ "status": "ACTIVE",
+ "uptime": "6m 5s",
+ "tasksTotal": 28,
+ "workersTotal": 3,
+ "executorsTotal": 28
+ }
+ ]
+}
+```
+
+### /api/v1/topology/:id (GET)
+ Returns details topology information. Subsititute id with topology id.
+
+Request Parameters:
+
+|Parameter |Value |Description |
+|----------|--------|-------------|
+|id |String (required)| Topology Id |
+|window |String. Default value :all-time| Window duration for metrics
in ms|
+|sys |String. Values 1 or 0. Default value 0| Controls including sys
stats part of the response|
+
+
+Response Fields:
+
+|Field |Description|
+|--- |--- |
+|id| Topology Id|
+|name| Topology Name|
+|uptime| Shows how long the topology is running|
+|tasksTotal| Total number of tasks for this topology|
+|workersTotal| Number of workers used for this topology|
+|executorsTotal| Number of executors used for this topology|
+|msgTimeout| |
+|windowHint| |
+|topologyStats.windowPretty| Duration passed in HH:MM:SS format|
+|topologyStats.window| User requested time window for metrics|
+|topologyStats.emitted| Number of messages emitted in given window|
+|topologyStats.trasferred| Number messages transferred in given window|
+|topologyStats.acked| Number of messages acked in given window|
+|topologyStats.failed| Number of messages failed in given window|
+|spouts| Array of all the spout components in the topology|
+|spouts.spoutId| Spout id|
+|spouts.executors| Number of executors for the spout|
+|spouts.completeLatency| Total latency for processing the message|
+|spouts.transferred| Total number of messages transferred|
+|spouts.tasks| Total number of tasks for the spout|
+|spouts.lastError| Shows the last error happened in a spout|
+|spouts.acked| Number of messages acked|
+|spouts.failed| Number of messages failed|
+|bolts| Array of bolt components in the topology|
+|bolts.boltId| Bolt id|
+|bolts.capacity| This value indicates number of mesages executed * average
execute latency / time window|
+|bolts.processLatency| Bolt's average time to ack a message after it's
received|
+|bolts.executeLatency| Average time for bolt's execute method |
+|bolts.executors| Number of executor tasks in the bolt component|
+|bolts.tasks| Number of instances of bolt|
+|bolts.acked| Number of tuples acked by the bolt|
+|bolts.failed| Number of tuples failed by the bolt|
+|bolts.lastError| Shows the last error occured in the bolt|
+|bolts.emitted| Number of tuples emitted|
+
+
+
+Examples:
+```no-highlight
+ 1. http://ui-daemon-host-name:8080/api/v1/topology/WordCount3-1-1402960825
+ 2.
http://ui-daemon-host-name:8080/api/v1/topology/WordCount3-1-1402960825?sys=1
+ 3.
http://ui-daemon-host-name:8080/api/v1/topology/WordCount3-1-1402960825?window=600
+```
+
+Sample Response:
+```json
+ {
+ "name": "WordCount3",
+ "id": "WordCount3-1-1402960825",
+ "workersTotal": 3,
+ "window": "600",
+ "status": "ACTIVE",
+ "tasksTotal": 28,
+ "executorsTotal": 28,
+ "uptime": "29m 19s",
+ "msgTimeout": 30,
+ "windowHint": "10m 0s",
+ "topologyStats": [
+ {
+ "windowPretty": "10m 0s",
+ "window": "600",
+ "emitted": 397960,
+ "transferred": 213380,
+ "completeLatency": "0.000",
+ "acked": 213460,
+ "failed": 0
+ },
+ {
+ "windowPretty": "3h 0m 0s",
+ "window": "10800",
+ "emitted": 1190260,
+ "transferred": 638260,
+ "completeLatency": "0.000",
+ "acked": 638280,
+ "failed": 0
+ },
+ {
+ "windowPretty": "1d 0h 0m 0s",
+ "window": "86400",
+ "emitted": 1190260,
+ "transferred": 638260,
+ "completeLatency": "0.000",
+ "acked": 638280,
+ "failed": 0
+ },
+ {
+ "windowPretty": "All time",
+ "window": ":all-time",
+ "emitted": 1190260,
+ "transferred": 638260,
+ "completeLatency": "0.000",
+ "acked": 638280,
+ "failed": 0
+ }
+ ],
+ "spouts": [
+ {
+ "executors": 5,
+ "emitted": 28880,
+ "completeLatency": "0.000",
+ "transferred": 28880,
+ "acked": 0,
+ "spoutId": "spout",
+ "tasks": 5,
+ "lastError": "",
+ "failed": 0
+ }
+ ],
+ "bolts": [
+ {
+ "executors": 12,
+ "emitted": 184580,
+ "transferred": 0,
+ "acked": 184640,
+ "executeLatency": "0.048",
+ "tasks": 12,
+ "executed": 184620,
+ "processLatency": "0.043",
+ "boltId": "count",
+ "lastError": "",
+ "capacity": "0.003",
+ "failed": 0
+ },
+ {
+ "executors": 8,
+ "emitted": 184500,
+ "transferred": 184500,
+ "acked": 28820,
+ "executeLatency": "0.024",
+ "tasks": 8,
+ "executed": 28780,
+ "processLatency": "2.112",
+ "boltId": "split",
+ "lastError": "",
+ "capacity": "0.000",
+ "failed": 0
+ }
+ ],
+ "configuration": {
+ "storm.id": "WordCount3-1-1402960825",
+ "dev.zookeeper.path": "/tmp/dev-storm-zookeeper",
+ "topology.tick.tuple.freq.secs": null,
+ "topology.builtin.metrics.bucket.size.secs": 60,
+ "topology.fall.back.on.java.serialization": true,
+ "topology.max.error.report.per.interval": 5,
+ "zmq.linger.millis": 5000,
+ "topology.skip.missing.kryo.registrations": false,
+ "storm.messaging.netty.client_worker_threads": 1,
+ "ui.childopts": "-Xmx768m",
+ "storm.zookeeper.session.timeout": 20000,
+ "nimbus.reassign": true,
+ "topology.trident.batch.emit.interval.millis": 500,
+ "storm.messaging.netty.flush.check.interval.ms": 10,
+ "nimbus.monitor.freq.secs": 10,
+ "logviewer.childopts": "-Xmx128m",
+ "java.library.path": "/usr/local/lib:/opt/local/lib:/usr/lib",
+ "topology.executor.send.buffer.size": 1024,
+ "storm.local.dir": "storm-local",
+ "storm.messaging.netty.buffer_size": 5242880,
+ "supervisor.worker.start.timeout.secs": 120,
+ "topology.enable.message.timeouts": true,
+ "nimbus.cleanup.inbox.freq.secs": 600,
+ "nimbus.inbox.jar.expiration.secs": 3600,
+ "drpc.worker.threads": 64,
+ "topology.worker.shared.thread.pool.size": 4,
+ "nimbus.host": "hw10843.local",
+ "storm.messaging.netty.min_wait_ms": 100,
+ "storm.zookeeper.port": 2181,
+ "transactional.zookeeper.port": null,
+ "topology.executor.receive.buffer.size": 1024,
+ "transactional.zookeeper.servers": null,
+ "storm.zookeeper.root": "/storm",
+ "storm.zookeeper.retry.intervalceiling.millis": 30000,
+ "supervisor.enable": true,
+ "storm.messaging.netty.server_worker_threads": 1
+ },
+}
+```
+
+
+### /api/v1/topology/:id/component/:component (GET)
+
+Returns detailed metrics and executor information
+
+|Parameter |Value |Description |
+|----------|--------|-------------|
+|id |String (required)| Topology Id |
+|component |String (required)| Component Id |
+|window |String. Default value :all-time| window duration for metrics
in ms|
+|sys |String. Values 1 or 0. Default value 0| controls including sys
stats part of the response|
+
+
+Examples:
+```no-highlight
+1.
http://ui-daemon-host-name:8080/api/v1/topology/WordCount3-1-1402960825/component/spout
+2.
http://ui-daemon-host-name:8080/api/v1/topology/WordCount3-1-1402960825/component/spout?sys=1
+3.
http://ui-daemon-host-name:8080/api/v1/topology/WordCount3-1-1402960825/component/spout?window=600
+```
+
--- End diff --
Is there any plan to document the response fields?
> Storm UI REST api documentation
> -------------------------------
>
> Key: STORM-367
> URL: https://issues.apache.org/jira/browse/STORM-367
> Project: Apache Storm (Incubating)
> Issue Type: Documentation
> Reporter: Sriharsha Chintalapani
>
--
This message was sent by Atlassian JIRA
(v6.2#6252)