---
title: Telegraf Documentation
description: Telegraf plugin for sending metrics to MongoDB
url: https://docs.influxdata.com/telegraf/v1/output-plugins/mongodb/
estimated_tokens: 1626
product: Telegraf
version: v1
---

-   Telegraf v1.21.0+

# MongoDB Output Plugin

This plugin writes metrics to [MongoDB](https://www.mongodb.com) automatically creating collections as time series collections if they don’t exist.

This plugin requires MongoDB v5 or later for time series collections.

**Introduced in:** Telegraf v1.21.0 **Tags:** datastore **OS support:** all

## Global configuration options

Plugins support additional global and plugin configuration settings for tasks such as modifying metrics, tags, and fields, creating aliases, and configuring plugin ordering. See [CONFIGURATION.md](/telegraf/v1/configuration/#plugins) for more details.

## Secret-store support

This plugin supports secrets from secret-stores for the `username` and `password` option. See the [secret-store documentation](/telegraf/v1/configuration/#secret-store-secrets) for more details on how to use them.

## Configuration

```toml
# A plugin that can transmit logs to mongodb
[[outputs.mongodb]]
  ## Connection string
  ## example: dsn = "mongodb://mongod1:27017,mongod2:27017,mongod3:27017/admin&replicaSet=myReplSet&w=1"
  dsn = "mongodb://localhost:27017"

  ## Overrides serverSelectionTimeoutMS in DSN if set
  # timeout = "30s"

  ## Authentication method, available options are NONE, PLAIN, SCRAM, X509
  # authentication = "NONE"

  # ## for SCRAM-SHA-256 authentication
  # # authentication = "SCRAM"
  # # username = "root"
  # # password = "***"

  # ## for PLAIN authentication (e.g., LDAP)
  # ## IMPORTANT: PLAIN authentication sends credentials in plaintext during the
  # ## authentication handshake. Always use TLS to encrypt credentials in transit.
  # # authentication = "PLAIN"
  # # username = "myuser"
  # # password = "***"

  # ## X509 based certificate authentication
  # # authentication = "X509"
  # # tls_ca = "ca.pem"
  # # tls_key = "client.pem"
  # # # tls_key_pwd = "changeme" # required for encrypted tls_key
  # # insecure_skip_verify = false

  ## Database to store measurements and time series collections
  # database = "telegraf"

  ## Granularity can be seconds, minutes, or hours.
  ## Configuring this value will be based on your input collection frequency
  ## see https://docs.mongodb.com/manual/core/timeseries-collections/#create-a-time-series-collection
  # granularity = "seconds"

  ## TTL to automatically expire documents from the measurement collections.
  # ttl = "360h"

  ## If true, write multiple metrics for the same collection in a batched
  ## fashion. Otherwise, write each metric individually.
  # write_batch = false
```

#### Related

-   [Configure plugins](/telegraf/v1/configure_plugins/)
-   [MongoDB Plugin Source](https://github.com/influxdata/telegraf/tree/v1.38.4/plugins/outputs/mongodb/README.md)
