CosmosDB make use of [Request Units 
(RU)](https://docs.microsoft.com/en-us/azure/cosmos-db/request-units) for 
throughput provisioning. This PR emits the changed RU as a metric which helps 
in monitoring the resource consumption based on collection and action performed.

## Description
Each request made to CosmosDB incurs some change in the form of RU spent for 
that request processing. This charge info is provided via response header 
`x-ms-request-charge`

```
x-ms-session-token: 4:3
x-ms-request-charge: 5.24
x-ms-serviceversion: version=2.0.0.0
```

This PR expose the charge as a metric named `cosmosdb_ru_used`. It also 
associates some tags like

- `mode` - `read` or `write`
- `collection` - Name of collection i.e. `activations`, `whisks` and `subjects`
- `action` - Type of operation performed. Example `get`, `put` etc

If tags are not enabled the metric name is generated like 
`cosmosdb.ru.<collecton name>.<action>`

## Related issue and scope
<!--- Please include a link to a related issue if there is one. -->
- [ ] I opened an issue to propose and discuss this change (#????)

## My changes affect the following components
<!--- Select below all system components are affected by your change. -->
<!--- Enter an `x` in all applicable boxes. -->
- [ ] API
- [ ] Controller
- [ ] Message Bus (e.g., Kafka)
- [ ] Loadbalancer
- [ ] Invoker
- [ ] Intrinsic actions (e.g., sequences, conductors)
- [ ] Data stores (e.g., CouchDB)
- [ ] Tests
- [ ] Deployment
- [ ] CLI
- [ ] General tooling
- [ ] Documentation

## Types of changes
<!--- What types of changes does your code introduce? Use `x` in all the boxes 
that apply: -->
- [ ] Bug fix (generally a non-breaking change which closes an issue).
- [ ] Enhancement or new feature (adds new functionality).
- [ ] Breaking change (a bug fix or enhancement which changes existing 
behavior).

## Checklist:
<!--- Please review the points below which help you make sure you've covered 
all aspects of the change you're making. -->

- [ ] I signed an [Apache 
CLA](https://github.com/apache/incubator-openwhisk/blob/master/CONTRIBUTING.md).
- [ ] I reviewed the [style 
guides](https://github.com/apache/incubator-openwhisk/wiki/Contributing:-Git-guidelines#code-readiness)
 and followed the recommendations (Travis CI will check :).
- [ ] I added tests to cover my changes.
- [ ] My changes require further changes to the documentation.
- [ ] I updated the documentation where necessary.



[ Full content available at: 
https://github.com/apache/incubator-openwhisk/pull/4023 ]
This message was relayed via gitbox.apache.org for [email protected]

Reply via email to