# @google-cloud/opentelemetry-cloud-monitoring-exporter

> OpenTelemetry Google Cloud Monitoring Exporter allows the user to send collected metrics to Google Cloud Monitoring.

Latest version **0.22.0** (published 2026-08-11) · Apache-2.0 license · 0 weekly downloads

> **Deprecated.** This package is deprecated.

## Install

```sh
npm install @google-cloud/opentelemetry-cloud-monitoring-exporter
pnpm add @google-cloud/opentelemetry-cloud-monitoring-exporter
yarn add @google-cloud/opentelemetry-cloud-monitoring-exporter
bun add @google-cloud/opentelemetry-cloud-monitoring-exporter
```

## Health

**Score 10/100 (F)** — status: deprecated.

Negative: deprecated.

## Facts

| | |
|---|---|
| Version | 0.22.0 |
| Published | 2026-08-11 |
| First published | 2020-04-28 |
| Weekly downloads | 0 |
| License | Apache-2.0 |
| TypeScript types | bundled |
| Module format | CommonJS |
| Node | >=18 |
| Dependencies | 4 |
| Unpacked size | 54.2 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Google Inc. |
| Maintainers | google-wombot, google-admin |
| Keywords | opentelemetry, nodejs, Monitoring, google-cloud-monitoring |

## Links

- npm: https://www.npmjs.com/package/@google-cloud/opentelemetry-cloud-monitoring-exporter
- Repository: GoogleCloudPlatform/opentelemetry-operations-js
- npm.io page: https://npm.io/package/@google-cloud/opentelemetry-cloud-monitoring-exporter

## Dependencies (4)

- [googleapis](https://npm.io/package/googleapis.md) ^173.0.0
- [google-auth-library](https://npm.io/package/google-auth-library.md) ^10.0.0
- [@google-cloud/precise-date](https://npm.io/package/@google-cloud/precise-date.md) ^4.0.0
- [@google-cloud/opentelemetry-resource-util](https://npm.io/package/@google-cloud/opentelemetry-resource-util.md) ^3.1.0

## Recent versions

- 0.22.0 (latest) — 2026-08-11
- 0.21.0 — 2025-09-09
- 0.20.0 — 2024-09-25
- 0.19.0 — 2024-07-12
- 0.18.0 — 2024-05-09
- 0.17.0 — 2023-07-11
- 0.16.0 — 2023-02-02
- 0.15.0 — 2022-12-05
- 0.14.0 — 2022-01-19
- 0.13.0 — 2021-10-08
- 0.12.0 — 2021-09-28
- 0.11.0 — 2021-08-02
- 0.10.0 — 2021-06-22
- 0.9.0 — 2021-03-05
- 0.8.0 — 2021-01-07
- … 8 more at https://npm.io/package/@google-cloud/opentelemetry-cloud-monitoring-exporter/versions

## README

> [!WARNING]
> This package is **deprecated** and will be archived after October 30th, 2026. Please migrate to community-maintained OTLP exporters (e.g., `@opentelemetry/exporter-metrics-otlp-http` or `@opentelemetry/exporter-metrics-otlp-grpc`). See the [Migration Guide](https://github.com/GoogleCloudPlatform/opentelemetry-operations-js/blob/main/MIGRATION.md) for details.

# OpenTelemetry Google Cloud Monitoring Exporter
[![NPM Published Version][npm-img]][npm-url]
[![Apache License][license-image]][license-image]

OpenTelemetry Google Cloud Monitoring Exporter allows the user to send collected metrics to
[Google Cloud Monitoring](https://cloud.google.com/monitoring).

To get started with instrumentation in Google Cloud, see [Generate traces and metrics with
Node.js](https://cloud.google.com/stackdriver/docs/instrumentation/setup/nodejs).

To learn more about instrumentation and observability, including opinionated recommendations
for Google Cloud Observability, visit [Instrumentation and
observability](https://cloud.google.com/stackdriver/docs/instrumentation/overview).

## Installation

```bash
npm install --save @opentelemetry/sdk-metrics
npm install --save @google-cloud/opentelemetry-cloud-monitoring-exporter
```

## Usage

```js
const { MeterProvider, PeriodicExportingMetricReader } = require("@opentelemetry/sdk-metrics");
const { resourceFromAttributes } = require("@opentelemetry/resources");
const { MetricExporter } = require("@google-cloud/opentelemetry-cloud-monitoring-exporter");
const { GcpDetectorSync } = require("@google-cloud/opentelemetry-resource-util");

// Create MeterProvider
const meterProvider = new MeterProvider({
  // Create a resource. Fill the `service.*` attributes in with real values for your service.
  // GcpDetectorSync will add in resource information about the current environment if you are
  // running on GCP. These resource attributes will be translated to a specific GCP monitored
  // resource if running on GCP. Otherwise, metrics will be sent with monitored resource
  // `generic_task`.
  resource: resourceFromAttributes({
    "service.name": "example-metric-service",
    "service.namespace": "samples",
    "service.instance.id": "12345",
  }).merge(new GcpDetectorSync().detect()),
});
// Register the exporter
meterProvider.addMetricReader(
  new PeriodicExportingMetricReader({
    // Export metrics every 10 seconds. 5 seconds is the smallest sample period allowed by
    // Cloud Monitoring.
    exportIntervalMillis: 10_000,
    exporter: new MetricExporter(),
  })
);

// Create a meter
const meter = meterProvider.getMeter("metrics-sample");

// Create a counter instrument
const counter = meter.createCounter("metric_name");
// Record a measurement
counter.add(10, { key: "value" });

// Wait for the metric to be exported
new Promise((resolve) => {
  setTimeout(resolve, 11_000);
});
```

### Enabling Exponential Histograms

This exporter can send OpenTelemetry Exponential Histograms to Google Cloud Monitoring. To use
this feature, add a metric [View][views] to configure `Histogram` instruments to use the
`ExponentialHistogram` aggregation:

```js
const {
  Aggregation,
  InstrumentType,
  MeterProvider,
  View
} = require("@opentelemetry/sdk-metrics");

const meterProvider = new MeterProvider({
  // ...
  views: [
    // To use ExponentialHistogram aggregation for all Histograms:
    new View({
      aggregation: Aggregation.ExponentialHistogram(),
      instrumentType: InstrumentType.HISTOGRAM,
    }),

    // Or if you'd only like to target a specific instrument:
    new View({
      aggregation: Aggregation.ExponentialHistogram(),
      instrumentType: InstrumentType.HISTOGRAM,
      instrumentName: "http.client.duration",
    }),
  ],
});
```

For more information on metric Views, see [Configure Metric Views][views].

##  Viewing your metrics:

With the above you should now be able to navigate to the Google Cloud Monitoring UI at: <https://console.cloud.google.com/monitoring>

## Useful links
- For more information on OpenTelemetry, visit: <https://opentelemetry.io/>
- For more about OpenTelemetry JavaScript: <https://github.com/open-telemetry/opentelemetry-js>
- Learn more about Google Cloud Monitoring at https://cloud.google.com/monitoring

[views]: https://opentelemetry.io/docs/instrumentation/js/manual/#configure-metric-views
[license-url]: https://github.com/GoogleCloudPlatform/opentelemetry-operations-js/blob/main/LICENSE
[npm-url]: https://www.npmjs.com/package/@google-cloud/opentelemetry-cloud-monitoring-exporter
[npm-img]: https://badge.fury.io/js/%40google-cloud%2Fopentelemetry-cloud-monitoring-exporter.svg
[license-image]: https://img.shields.io/badge/license-Apache_2.0-green.svg?style=flat

---
_Source: https://npm.io/package/@google-cloud/opentelemetry-cloud-monitoring-exporter · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
