Skip to content

Commit f7185ab

Browse files
authored
chore: update metrics README (open-telemetry#490)
* chore: update metrics README * chore: add npm badge * chore: add todo * chore: add WIP measures * chore: minor * chore: update metrics README * fix: review comment * fix: review comment
1 parent 39c6a19 commit f7185ab

File tree

1 file changed

+64
-1
lines changed

1 file changed

+64
-1
lines changed

packages/opentelemetry-metrics/README.md

Lines changed: 64 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,71 @@
11
# OpenTelemetry Metrics SDK
22
[![Gitter chat][gitter-image]][gitter-url]
3+
[![NPM Published Version][npm-img]][npm-url]
34
[![dependencies][dependencies-image]][dependencies-url]
45
[![devDependencies][devDependencies-image]][devDependencies-url]
56
[![Apache License][license-image]][license-image]
67

7-
**Work in progress**
8+
OpenTelemetry metrics allow a user to collect data and export it to a metrics backend like [Prometheus](https://prometheus.io/).
9+
10+
## Installation
11+
12+
```bash
13+
npm install --save @opentelemetry/metrics
14+
```
15+
16+
## Usage
17+
18+
### Counter
19+
Choose this kind of metric when the value is a quantity, the sum is of primary interest, and the event count and value distribution are not of primary interest. Counters are defined as `Monotonic = true` by default, meaning that positive values are expected.
20+
21+
```js
22+
const { Meter } = require('@opentelemetry/metrics');
23+
24+
// Initialize the Meter to capture measurements in various ways.
25+
const meter = new Meter();
26+
27+
const counter = meter.createCounter('metric_name', {
28+
labelKeys: ["pid"],
29+
description: "Example of a counter"
30+
});
31+
32+
const labels = meter.labels({ pid: process.pid });
33+
34+
// Create a Handle associated with specified label values.
35+
const handle = counter.getHandle(labels);
36+
handle.add(10);
37+
```
38+
39+
### Gauge
40+
Gauge metrics express a pre-calculated value. Generally, this kind of metric should be used when the metric cannot be expressed as a sum or because the measurement interval is arbitrary. Use this kind of metric when the measurement is not a quantity, and the sum and event count are not of interest. Gauges are defined as `Monotonic = false` by default, meaning that new values are permitted to make positive or negative changes to the gauge. There is no restriction on the sign of the input for gauges.
41+
42+
```js
43+
const { Meter } = require('@opentelemetry/metrics');
44+
45+
// Initialize the Meter to capture measurements in various ways.
46+
const meter = new Meter();
47+
48+
const gauge = meter.createGauge('metric_name', {
49+
labelKeys: ["pid"],
50+
description: "Example of a gauge"
51+
});
52+
53+
const labels = meter.labels({ pid: process.pid });
54+
55+
// Create a Handle associated with specified label values.
56+
const handle = gauge.getHandle(labels);
57+
handle.set(10); // Set to 10
58+
```
59+
60+
See [examples/prometheus](https://github.com/open-telemetry/opentelemetry-js/tree/master/examples/prometheus) for a short example.
61+
62+
### Measure
63+
***Work in progress***
64+
65+
## Useful links
66+
- For more information on OpenTelemetry, visit: <https://opentelemetry.io/>
67+
- For more about OpenTelemetry JavaScript: <https://github.com/open-telemetry/opentelemetry-js>
68+
- For help or feedback on this project, join us on [gitter][gitter-url]
869

970
## License
1071

@@ -18,3 +79,5 @@ Apache 2.0 - See [LICENSE][license-url] for more information.
1879
[dependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-metrics
1980
[devDependencies-image]: https://david-dm.org/open-telemetry/opentelemetry-js/dev-status.svg?path=packages/opentelemetry-metrics
2081
[devDependencies-url]: https://david-dm.org/open-telemetry/opentelemetry-js?path=packages%2Fopentelemetry-metrics&type=dev
82+
[npm-url]: https://www.npmjs.com/package/@opentelemetry/metrics
83+
[npm-img]: https://badge.fury.io/js/%40opentelemetry%2Fmetrics.svg

0 commit comments

Comments
 (0)