Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

in_prometheus_remote_write: Add documentation for input plugin of prometheus remote write #1363

Merged
merged 10 commits into from
May 29, 2024
1 change: 1 addition & 0 deletions SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@
* [Process Log Based Metrics](pipeline/inputs/process.md)
* [Process Exporter Metrics](pipeline/inputs/process-exporter-metrics.md)
* [Prometheus Scrape Metrics](pipeline/inputs/prometheus-scrape-metrics.md)
* [Prometheus Remote Write](pipeline/inputs/prometheus-remote-write.md)
* [Random](pipeline/inputs/random.md)
* [Serial Interface](pipeline/inputs/serial-interface.md)
* [Splunk](pipeline/inputs/splunk.md)
Expand Down
74 changes: 74 additions & 0 deletions pipeline/inputs/prometheus-remote-write.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
---
description: An input plugin to ingest payloads of Prometheus remote write
---

# Prometheus Remote Write

This input plugin allows you to ingest a payload in the Prometheus remote-write format, i.e. a remote write sender can transmit data to Fluent Bit.

## Configuration

| Key | Description | default |
| ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ------- |
| listen | The address to listen on | 0.0.0.0 |
| port | The port for Fluent Bit to listen on | 8080 |
| buffer\_max\_size | Specify the maximum buffer size in KB to receive a JSON message. | 4M |
| buffer\_chunk\_size | This sets the chunk size for incoming incoming JSON messages. These chunks are then stored/managed in the space available by buffer_max_size. | 512K |
|successful\_response\_code | It allows to set successful response code. `200`, `201` and `204` are supported.| 201 |
| tag\_from\_uri | If true, tag will be created from uri, e.g. api\_prom\_push from /api/prom/push, and any tag specified in the config will be ignored. If false then a tag must be provided in the config for this input. | true |


cosmo0920 marked this conversation as resolved.
Show resolved Hide resolved

A sample config file to get started will look something like the following:


{% tabs %}
{% tab title="fluent-bit.conf" %}
```
[INPUT]
name prometheus_remote_write
listen 127.0.0.1
port 8080
uri /api/prom/push

[OUTPUT]
name stdout
match *
```
{% endtab %}

{% tab title="fluent-bit.yaml" %}
```yaml
pipeline:
inputs:
- name: prometheus_remote_write
listen: 127.0.0.1
port: 8080
uri: /api/prom/push
outputs:
- name: stdout
match: '*'
```
{% endtab %}
{% endtabs %}

With the above configuration, Fluent Bit will listen on port `8080` for data. You can now send payloads of Prometheus remote write to the endpoints `/api/prom/push`.
cosmo0920 marked this conversation as resolved.
Show resolved Hide resolved

## Examples

### Communicate with TLS

Communicating with TLS, you will need to use the tls related parameters:
cosmo0920 marked this conversation as resolved.
Show resolved Hide resolved

```
[INPUT]
Name prometheus_remote_write
Listen 127.0.0.1
Port 8080
Uri /api/prom/push
Tls On
tls.crt_file /path/to/certificate.crt
tls.key_file /path/to/certificate.key
```

Then, enabled TLS configuration and able to ingest payloads of metrics with Prometheus' remote write protocol.
cosmo0920 marked this conversation as resolved.
Show resolved Hide resolved