Understanding and managing Cockpit ingestion to reduce costs
This page explains how you can control your usage of Cockpit, primarily by managing your ingestion rate, to help you avoid unnecessary costs.
For more information about how Cockpit is billed, refer to the Cockpit FAQ.
Cockpit allows you to push custom metrics for various resources. Since pricing is based on the number of ingested samples per month, optimizing your ingestion can directly impact your invoice.
Importance of controlling the rateLink to this anchor
If you wish to avoid extra costs, you can define a limit to the number of samples you send to Cockpit. The following table shows an estimate of the pricing (€0.00000015 per sample) based on the push rate of the sample:
Sample ingestion rate per seconds | Samples ingested per day | Price per day | Samples ingested per month | Price per month |
---|---|---|---|---|
1 | 86 400 | €0.01296 | 2 678 400 | €0.4017 |
10 | 864 000 | €0.1296 | 26 784 000 | €4.0176 |
100 | 8 640 000 | €1.296 | 267 840 000 | €40.176 |
1000 | 86 400 000 | €12.96 | 2 678 400 000 | €401.76 |
How to know my current ingestion rate?Link to this anchor
Within the Cockpit dashboard on Grafana, click Cockpit Overview. The panel named Metrics ingestion rate displays the ingestion rate for samples coming from Scaleway products, and the ingestion rate for your own samples if you look at “Other Metrics”.
If you are using your own Grafana to visualize metrics, use the following query sum(rate(observability_cockpit_ingestion_samples_total{is_from_scaleway="false"}[5m])) OR on() vector(0)
to know what your current ingestion rate is.
How to control the number of samples sent to Cockpit?Link to this anchor
Control the interval between scrapesLink to this anchor
A common good practice to control the number of samples you send to Cockpit, is to have a scrape_interval
of 1 minute.
Let us say you have 1000 samples exposed and a scrape_interval
of 10s. This means you will have a rate of 100 sample/s and pay around €40 per month.
If you increase the scrape_interval
to 60s, you will have a rate of 1,66 sample/s, which amounts to around €6.69 per month.
Change the scrape interval using Prometheus
If you are using Prometheus to remote write metrics to your Cockpit, you can tweak the scrape_interval
using the following configuration:
global:scrape_interval: 60sscrape_configs:...remote_write:- url: https://metrics.cockpit.fr-par.scw.cloud/api/v1/pushheaders:"X-Token": <your-cockpit-token>
Change the scrape interval using the Grafana agent
Here is an example of a Grafana agent configuration file with a scrape interval of 60 seconds:
metrics:global:scrape_interval: 60sremote_write:- url: https://metrics.cockpit.fr-par.scw.cloud/api/v1/pushheaders:"X-Token": <your-cockpit-token>integrations:...
Control the metrics you are sendingLink to this anchor
Another good practice to control the number of samples you send to Cockpit, is to only send metrics that you want into your Cockpit, by filtering what you send.
Here is a configuration example with Prometheus:
...remote_write:- url: https://metrics.cockpit.fr-par.scw.cloud/api/v1/pushheaders:"X-Token": <your-cockpit-token>write_relabel_configs:- source_labels: [__name__]regex: 'my_app_metrics(.*)'action: keep
This configuration will only send metrics starting with my_app_metrics
to your Cockpit.
For more information, refer to the Prometheus documentation.
Learn about the agents you are usingLink to this anchor
Many agents, such as cadvisor
and node_exporter
expose a lot of metrics by default.
The following metrics collectors are enabled by default on a node_exporter. You can configure them to filter what is sent to your Cockpit.
Use the following configuration example for a Grafana agent with the node_exporter
integration:
...integrations:node_exporter:enabled: true# Anything not provided in the list below will be disabled by defaultset_collectors:- uname- cpu- loadavg- meminfo- filesystem- netdev