Skip to content
Merged
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. This parameter will be prioritized when tag parameter is specified. If specify as false, it needs to specify user specified tag with tag parameter. | true |
Comment thread
cosmo0920 marked this conversation as resolved.
Outdated


Comment thread
cosmo0920 marked this conversation as 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`.
Comment thread
cosmo0920 marked this conversation as resolved.
Outdated

## Examples

### Communicate with TLS

Communicating with TLS, you will need to use the tls related parameters:
Comment thread
cosmo0920 marked this conversation as 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.
Comment thread
cosmo0920 marked this conversation as resolved.
Outdated