Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
D
docs
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
docs
Commits
f0a41f3c
Commit
f0a41f3c
authored
Aug 04, 2015
by
Julius Volz
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #151 from prometheus/federation
Document federation use cases and configuration.
parents
0758d101
c9391e61
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
83 additions
and
0 deletions
+83
-0
configuration.md
content/docs/operating/configuration.md
+1
-0
federation.md
content/docs/operating/federation.md
+81
-0
storage.md
content/docs/operating/storage.md
+1
-0
No files found.
content/docs/operating/configuration.md
View file @
f0a41f3c
---
title
:
Configuration
nav_icon
:
sliders
sort_rank
:
1
---
# Configuration
...
...
content/docs/operating/federation.md
0 → 100644
View file @
f0a41f3c
---
title
:
Federation
sort_rank
:
3
---
# Federation
Federation allows a Prometheus server to scrape selected time series from
another Prometheus server.
## Use cases
There are different use cases for federation. Commonly, it is used to either
achieve scalable Prometheus monitoring setups or to pull related metrics from
one service's Prometheus into another.
### Hierarchical federation
Hierarchical federation allows Prometheus to scale to environments with tens of
data centers and millions of nodes. In this use case, the federation topology
resembles a tree, with higher-level Prometheus servers collecting aggregated
time series data from a larger number of subordinated servers.
For example, a setup might consist of many per-datacenter Prometheus servers
that collect data in high detail (instance-level drill-down), and a set of
global Prometheus servers which collect and store only aggregated data
(job-level drill-down) from those local servers. This provides an aggregate
global view and detailed local views.
### Cross-service federation
In cross-service federation, a Prometheus server of one service is configured
to scrape selected data from another service's Prometheus server to enable
alerting and queries against both datasets within a single server.
For example, a cluster scheduler running multiple services might expose
resource usage information (like memory and CPU usage) about service instances
running on the cluster. On the other hand, a service running on that cluster
will only expose application-specific service metrics. Often, these two sets of
metrics are scraped by separate Prometheus servers. Using federation, the
Prometheus server containing service-level metrics may pull in the cluster
resource usage metrics about its specific service from the cluster Prometheus,
so that both sets of metrics can be used within that server.
## Configuring federation
On any given Prometheus server, the
`/federate`
endpoint allows retrieving the
current value for a selected set of time series in that server. At least one
`match[]`
URL parameter must be specified to select the series to expose. Each
`match[]`
argument needs to specify an
[
instant vector selector
](
/docs/querying/basics/#instant-vector-selectors
)
like
`up`
or
`{job="api-server"}`
. If multiple
`match[]`
parameters are provided,
the union of all matched series is selected.
To federate metrics from one server to another, configure your destination
Prometheus server to scrape from the
`/federate`
endpoint of a source server,
while also enabling the
`honor_labels`
scrape option (to not overwrite any
labels exposed by the source server) and passing in the desired
`match[]`
parameters. For example, the following
`scrape_config`
federates any series
with the label
`job="prometheus"`
or a metric name starting with
`job:`
from
the Prometheus servers at
`source-prometheus-{1,2,3}:9090`
into the scraping
Prometheus:
```
- job_name: 'federate'
scrape_interval: 15s
honor_labels: true
metrics_path: '/federate'
params:
'match[]':
- 'job="prometheus"'
- '{__name__=~"^job:"}']
target_groups:
- targets:
- 'source-prometheus-1:9090'
- 'source-prometheus-2:9090'
- 'source-prometheus-3:9090'
```
content/docs/operating/storage.md
View file @
f0a41f3c
---
title
:
Storage
nav_icon
:
database
sort_rank
:
2
---
# Storage
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment