Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[broker] Add perPartition parameter to partitioned-stats API #4639

Merged
merged 1 commit into from
Jul 3, 2019

Conversation

massakam
Copy link
Contributor

Motivation

Currently, the partitioned-stats API response includes stats for each partition. However, if the number of partitions and clients is large, the size of the response will be very large. In such cases, it is useful to have a query parameter to get a response that does not include stats for each partition.

$ curl -s http://localhost:8080/admin/persistent/sample/standalone/ns1/pt1/partitioned-stats | jq .

{
  "msgRateIn": 0,
  "msgThroughputIn": 0,
  "msgRateOut": 0,
  "msgThroughputOut": 0,
  "averageMsgSize": 0,
  "storageSize": 0,
  "publishers": [],
  "subscriptions": {
    "sub1": {
      "msgRateOut": 0,
      "msgThroughputOut": 0,
      "msgRateRedeliver": 0,
      "msgBacklog": 0,
      "blockedSubscriptionOnUnackedMsgs": false,
      "msgDelayed": 0,
      "unackedMessages": 0,
      "msgRateExpired": 0,
      "consumers": [],
      "isReplicated": false
    }
  },
  "replication": {},
  "metadata": {
    "partitions": 2
  },
  "partitions": {
    "persistent://sample/standalone/ns1/pt1-partition-1": {
      "msgRateIn": 0,
      "msgThroughputIn": 0,
      "msgRateOut": 0,
      "msgThroughputOut": 0,
      "averageMsgSize": 0,
      "storageSize": 0,
      "publishers": [],
      "subscriptions": {
        "sub1": {
          "msgRateOut": 0,
          "msgThroughputOut": 0,
          "msgRateRedeliver": 0,
          "msgBacklog": 0,
          "blockedSubscriptionOnUnackedMsgs": false,
          "msgDelayed": 0,
          "unackedMessages": 0,
          "msgRateExpired": 0,
          "consumers": [],
          "isReplicated": false
        }
      },
      "replication": {},
      "deduplicationStatus": "Disabled"
    },
    "persistent://sample/standalone/ns1/pt1-partition-0": {
      "msgRateIn": 0,
      "msgThroughputIn": 0,
      "msgRateOut": 0,
      "msgThroughputOut": 0,
      "averageMsgSize": 0,
      "storageSize": 0,
      "publishers": [],
      "subscriptions": {
        "sub1": {
          "msgRateOut": 0,
          "msgThroughputOut": 0,
          "msgRateRedeliver": 0,
          "msgBacklog": 0,
          "blockedSubscriptionOnUnackedMsgs": false,
          "msgDelayed": 0,
          "unackedMessages": 0,
          "msgRateExpired": 0,
          "consumers": [],
          "isReplicated": false
        }
      },
      "replication": {},
      "deduplicationStatus": "Disabled"
    }
  }
}

Modifications

Added query parameter named perPartition to the partitioned-stats API. The default value is true.

Verifying this change

  • Make sure that the change passes the CI checks.

@massakam massakam added type/enhancement The enhancements for the existing features or docs. e.g. reduce memory usage of the delayed messages area/broker labels Jun 28, 2019
@massakam massakam added this to the 2.5.0 milestone Jun 28, 2019
@massakam massakam self-assigned this Jun 28, 2019
@massakam massakam modified the milestones: 2.5.0, 2.4.1 Jun 30, 2019
@sijie sijie merged commit 977b1a8 into apache:master Jul 3, 2019
@massakam massakam deleted the partitioned-stats branch July 3, 2019 02:03
easyfan pushed a commit to easyfan/pulsar that referenced this pull request Jul 26, 2019
### Motivation

Currently, the partitioned-stats API response includes stats for each partition. However, if the number of partitions and clients is large, the size of the response will be very large. In such cases, it is useful to have a query parameter to get a response that does not include stats for each partition.

```sh
$ curl -s http://localhost:8080/admin/persistent/sample/standalone/ns1/pt1/partitioned-stats | jq .

{
  "msgRateIn": 0,
  "msgThroughputIn": 0,
  "msgRateOut": 0,
  "msgThroughputOut": 0,
  "averageMsgSize": 0,
  "storageSize": 0,
  "publishers": [],
  "subscriptions": {
    "sub1": {
      "msgRateOut": 0,
      "msgThroughputOut": 0,
      "msgRateRedeliver": 0,
      "msgBacklog": 0,
      "blockedSubscriptionOnUnackedMsgs": false,
      "msgDelayed": 0,
      "unackedMessages": 0,
      "msgRateExpired": 0,
      "consumers": [],
      "isReplicated": false
    }
  },
  "replication": {},
  "metadata": {
    "partitions": 2
  },
  "partitions": {
    "persistent://sample/standalone/ns1/pt1-partition-1": {
      "msgRateIn": 0,
      "msgThroughputIn": 0,
      "msgRateOut": 0,
      "msgThroughputOut": 0,
      "averageMsgSize": 0,
      "storageSize": 0,
      "publishers": [],
      "subscriptions": {
        "sub1": {
          "msgRateOut": 0,
          "msgThroughputOut": 0,
          "msgRateRedeliver": 0,
          "msgBacklog": 0,
          "blockedSubscriptionOnUnackedMsgs": false,
          "msgDelayed": 0,
          "unackedMessages": 0,
          "msgRateExpired": 0,
          "consumers": [],
          "isReplicated": false
        }
      },
      "replication": {},
      "deduplicationStatus": "Disabled"
    },
    "persistent://sample/standalone/ns1/pt1-partition-0": {
      "msgRateIn": 0,
      "msgThroughputIn": 0,
      "msgRateOut": 0,
      "msgThroughputOut": 0,
      "averageMsgSize": 0,
      "storageSize": 0,
      "publishers": [],
      "subscriptions": {
        "sub1": {
          "msgRateOut": 0,
          "msgThroughputOut": 0,
          "msgRateRedeliver": 0,
          "msgBacklog": 0,
          "blockedSubscriptionOnUnackedMsgs": false,
          "msgDelayed": 0,
          "unackedMessages": 0,
          "msgRateExpired": 0,
          "consumers": [],
          "isReplicated": false
        }
      },
      "replication": {},
      "deduplicationStatus": "Disabled"
    }
  }
}
```

### Modifications

Added query parameter named `perPartition` to the partitioned-stats API. The default value is true.
jiazhai pushed a commit that referenced this pull request Aug 28, 2019
### Motivation

Currently, the partitioned-stats API response includes stats for each partition. However, if the number of partitions and clients is large, the size of the response will be very large. In such cases, it is useful to have a query parameter to get a response that does not include stats for each partition.

```sh
$ curl -s http://localhost:8080/admin/persistent/sample/standalone/ns1/pt1/partitioned-stats | jq .

{
  "msgRateIn": 0,
  "msgThroughputIn": 0,
  "msgRateOut": 0,
  "msgThroughputOut": 0,
  "averageMsgSize": 0,
  "storageSize": 0,
  "publishers": [],
  "subscriptions": {
    "sub1": {
      "msgRateOut": 0,
      "msgThroughputOut": 0,
      "msgRateRedeliver": 0,
      "msgBacklog": 0,
      "blockedSubscriptionOnUnackedMsgs": false,
      "msgDelayed": 0,
      "unackedMessages": 0,
      "msgRateExpired": 0,
      "consumers": [],
      "isReplicated": false
    }
  },
  "replication": {},
  "metadata": {
    "partitions": 2
  },
  "partitions": {
    "persistent://sample/standalone/ns1/pt1-partition-1": {
      "msgRateIn": 0,
      "msgThroughputIn": 0,
      "msgRateOut": 0,
      "msgThroughputOut": 0,
      "averageMsgSize": 0,
      "storageSize": 0,
      "publishers": [],
      "subscriptions": {
        "sub1": {
          "msgRateOut": 0,
          "msgThroughputOut": 0,
          "msgRateRedeliver": 0,
          "msgBacklog": 0,
          "blockedSubscriptionOnUnackedMsgs": false,
          "msgDelayed": 0,
          "unackedMessages": 0,
          "msgRateExpired": 0,
          "consumers": [],
          "isReplicated": false
        }
      },
      "replication": {},
      "deduplicationStatus": "Disabled"
    },
    "persistent://sample/standalone/ns1/pt1-partition-0": {
      "msgRateIn": 0,
      "msgThroughputIn": 0,
      "msgRateOut": 0,
      "msgThroughputOut": 0,
      "averageMsgSize": 0,
      "storageSize": 0,
      "publishers": [],
      "subscriptions": {
        "sub1": {
          "msgRateOut": 0,
          "msgThroughputOut": 0,
          "msgRateRedeliver": 0,
          "msgBacklog": 0,
          "blockedSubscriptionOnUnackedMsgs": false,
          "msgDelayed": 0,
          "unackedMessages": 0,
          "msgRateExpired": 0,
          "consumers": [],
          "isReplicated": false
        }
      },
      "replication": {},
      "deduplicationStatus": "Disabled"
    }
  }
}
```

### Modifications

Added query parameter named `perPartition` to the partitioned-stats API. The default value is true.

(cherry picked from commit 977b1a8)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/broker type/enhancement The enhancements for the existing features or docs. e.g. reduce memory usage of the delayed messages
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants