# Send Metrics to the Platform

You can send metrics to the <code class="expression">space.vars.monitoring\_service</code> using agents such as Fluent Bit, Grafana Agent, Prometheus, and OpenTelemetry Collector.

This Quickstart shows how to create a pipeline, get an API key, and configure one of these agents.

## Prerequisites

* An IONOS Cloud account with permissions to create monitoring pipelines.
* Outbound `HTTPS` access on port 443.
* The required agent or collector must be installed on your system.

Example endpoint:

`123456789-metrics.987654321.monitoring.de-txl.ionos.com`

{% hint style="info" %}
**Note:** To make a final and complete address, add `api/v1/push` to the end of the endpoint. For example: `123456789-metrics.987654321.monitoring.de-txl.ionos.com/api/v1/push`.
{% endhint %}

You can also find Prometheus configuration examples in our [<mark style="color:blue;">GitHub repository</mark>](https://github.com/ionos-cloud/observability-services-user-documentation/tree/main/monitoring).

{% stepper %}
{% step %}

### Create a pipeline

Send a `POST` request to the Monitoring Service API:

```bash
curl -X POST "https://monitoring.de-txl.ionos.com/pipelines"
  -H "Content-Type: application/json" \
  -d '{"name": "example-pipeline"}'
```

The response includes the `httpEndpoint`. Save this value.
{% endstep %}

{% step %}

### API key usage

Use the `API Key` returned when you created the pipeline for authentication.\
You only need to generate a new one in specific cases, such as:

* The key was accidentally shared
* The key was lost
* A team member with access left the company

To generate a new `API key`, run:

```bash
curl -X POST "https://monitoring.de-txl.ionos.com/pipelines/<PIPELINE_ID>/key"
```

This will issue a new `API Key` and replace the previous one.

The final endpoint for sending metrics is:

```perl
https://<HTTP_ENDPOINT>/api/v1/push
```

{% endstep %}
{% endstepper %}

## Configure an agent

Each agent requires the pipeline `httpEndpoint` and `API key`.

{% tabs %}
{% tab title="Fluent Bit" %}
This example shows how to configure Fluent Bit to send metrics to the Monitoring Service.

1. Install the Fluent Bit package for your distribution.
2. Update the `fluentbit.conf` file with the `HTTP endpoint` and `API key`.
3. Run Fluent Bit.
4. Check the logs to confirm metrics are sent.

```ini
[OUTPUT]
    Name   http
    Match  *
    Host   <pipeline-endpoint-host>
    Port   443
    URI    /
    Header Authorization Bearer <apiKey>
    Format json
```

{% endtab %}

{% tab title="Grafana Agent" %}
You can configure Grafana Agent to send metrics to the monitoring pipeline.

1. Install the Grafana Agent package for your distribution. For more information, refer to the [<mark style="color:blue;">Grafana Documentation</mark>](https://grafana.com/docs/agent/latest/about/).
2. Update the HTTP endpoint and API key in the configuration file.

```river
  prometheus.remote_write "LABEL" {
    endpoint {
      url = "your pipeline's httpEndpoint"

      headers = {
        "APIKEY" = "<API_KEY>",
      }
  }
}
```

{% endtab %}

{% tab title="Prometheus" %}
Prometheus is a monitoring and alerting toolkit designed for reliability and scalability. It is a pull-based system that scrapes metrics from instrumented jobs, either directly or through a push gateway for short-lived jobs.

1. Install the Prometheus package for your distribution.
2. Update the `prometheus.yml` file with the `HTTP endpoint` and `API key`.

```yaml
url: "your pipeline's httpEndpoint"
headers:
  APIKEY: "<APIKEY>"
```

{% endtab %}

{% tab title="OpenTelemetry" %}
OpenTelemetry is a set of APIs, libraries, agents, and instrumentation for observability. It is a [<mark style="color:blue;">Cloud Native Computing Foundation (CNCF)</mark>](https://docs.ionos.com/sections-test/guides/observability/monitoring-service-faqs#what-is-cloud-native-computing-foundation).

1. Install the OpenTelemetry Collector.
2. Update the configuration file with the `HTTP endpoint` and `API key`.

```yaml
exporters:
  prometheusremotewrite:
    endpoint: "your pipeline's httpEndpoint"
    external_labels:
      APIKEY: <API_KEY>
      label_name2: label_value2
```

{% endtab %}
{% endtabs %}

## Troubleshooting

1. **Verify:** Open the Monitoring Service dashboard and confirm that metrics appear.
2. **Invalid API key:** Check that you copied the correct key.
3. **Connection errors:** Verify outbound `HTTPS` access on port 443.
4. **No metrics displayed:** Confirm that the agent is running and producing data.
