73 lines
2.9 KiB
Markdown
73 lines
2.9 KiB
Markdown
|
# Google Cloud PubSub Push Input Service Plugin
|
||
|
|
||
|
The Google Cloud PubSub Push listener is a service input plugin that listens for messages sent via an HTTP POST from [Google Cloud PubSub][pubsub].
|
||
|
The plugin expects messages in Google's Pub/Sub JSON Format ONLY.
|
||
|
The intent of the plugin is to allow Telegraf to serve as an endpoint of the Google Pub/Sub 'Push' service.
|
||
|
Google's PubSub service will **only** send over HTTPS/TLS so this plugin must be behind a valid proxy or must be configured to use TLS.
|
||
|
|
||
|
Enable TLS by specifying the file names of a service TLS certificate and key.
|
||
|
|
||
|
Enable mutually authenticated TLS and authorize client connections by signing certificate authority by including a list of allowed CA certificate file names in `tls_allowed_cacerts`.
|
||
|
|
||
|
|
||
|
### Configuration:
|
||
|
|
||
|
This is a sample configuration for the plugin.
|
||
|
|
||
|
```toml
|
||
|
[[inputs.cloud_pubsub_push]]
|
||
|
## Address and port to host HTTP listener on
|
||
|
service_address = ":8080"
|
||
|
|
||
|
## Application secret to verify messages originate from Cloud Pub/Sub
|
||
|
# token = ""
|
||
|
|
||
|
## Path to listen to.
|
||
|
# path = "/"
|
||
|
|
||
|
## Maximum duration before timing out read of the request
|
||
|
# read_timeout = "10s"
|
||
|
## Maximum duration before timing out write of the response. This should be set to a value
|
||
|
## large enough that you can send at least 'metric_batch_size' number of messages within the
|
||
|
## duration.
|
||
|
# write_timeout = "10s"
|
||
|
|
||
|
## Maximum allowed http request body size in bytes.
|
||
|
## 0 means to use the default of 524,288,00 bytes (500 mebibytes)
|
||
|
# max_body_size = "500MB"
|
||
|
|
||
|
## Whether to add the pubsub metadata, such as message attributes and subscription as a tag.
|
||
|
# add_meta = false
|
||
|
|
||
|
## Optional. Maximum messages to read from PubSub that have not been written
|
||
|
## to an output. Defaults to 1000.
|
||
|
## For best throughput set based on the number of metrics within
|
||
|
## each message and the size of the output's metric_batch_size.
|
||
|
##
|
||
|
## For example, if each message contains 10 metrics and the output
|
||
|
## metric_batch_size is 1000, setting this to 100 will ensure that a
|
||
|
## full batch is collected and the write is triggered immediately without
|
||
|
## waiting until the next flush_interval.
|
||
|
# max_undelivered_messages = 1000
|
||
|
|
||
|
## Set one or more allowed client CA certificate file names to
|
||
|
## enable mutually authenticated TLS connections
|
||
|
# tls_allowed_cacerts = ["/etc/telegraf/clientca.pem"]
|
||
|
|
||
|
## Add service certificate and key
|
||
|
# tls_cert = "/etc/telegraf/cert.pem"
|
||
|
# tls_key = "/etc/telegraf/key.pem"
|
||
|
|
||
|
## Data format to consume.
|
||
|
## Each data format has its own unique set of configuration options, read
|
||
|
## more about them here:
|
||
|
## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md
|
||
|
data_format = "influx"
|
||
|
```
|
||
|
|
||
|
This plugin assumes you have already created a PUSH subscription for a given
|
||
|
PubSub topic.
|
||
|
|
||
|
[pubsub]: https://cloud.google.com/pubsub
|
||
|
[input data formats]: /docs/DATA_FORMATS_INPUT.md
|