-
Notifications
You must be signed in to change notification settings - Fork 576
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Cortex: Add example * Add license and source to cortexConfig * Run make precommit * Switch to infinite loop
- Loading branch information
1 parent
9cc7199
commit b3e521c
Showing
7 changed files
with
659 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
# Cortex Exporter Example | ||
|
||
This example exports several metrics to a [Cortex](https://cortexmetrics.io/) instance and displays | ||
them in [Grafana](https://grafana.com/). | ||
|
||
## Requirements | ||
|
||
- [Docker Compose](https://docs.docker.com/compose/) installed | ||
|
||
## Instructions | ||
|
||
1. Run the docker container with the following command | ||
|
||
```bash | ||
docker-compose up -d | ||
``` | ||
|
||
2. Log in to the Grafana instance running at [http://localhost:3000](http://localhost:3000). The | ||
login credentials are admin/admin. | ||
|
||
3. Add Cortex as a data source by creating a new Prometheus data source using | ||
[http://localhost:9009/api/prom/](http://localhost:9009/api/prom/) as the endpoint. | ||
|
||
4. View collected metrics in Grafana. | ||
|
||
5. Shut down the services when you're finished with the example | ||
|
||
```bash | ||
docker-compose down | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
# Copyright The OpenTelemetry Authors | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
|
||
url: http://host.docker.internal:9009/api/prom/push | ||
remote_timeout: 30s | ||
push_interval: 2s | ||
name: Test | ||
headers: | ||
X-Scope-OrgID: 5 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,99 @@ | ||
# This Cortex Config is copied from the Cortex Project documentation | ||
# Source: https://github.com/cortexproject/cortex/blob/master/docs/configuration/single-process-config.yaml | ||
|
||
# Configuration for running Cortex in single-process mode. | ||
# This configuration should not be used in production. | ||
# It is only for getting started and development. | ||
|
||
# Disable the requirement that every request to Cortex has a | ||
# X-Scope-OrgID header. `fake` will be substituted in instead. | ||
auth_enabled: false | ||
|
||
server: | ||
http_listen_port: 9009 | ||
|
||
# Configure the server to allow messages up to 100MB. | ||
grpc_server_max_recv_msg_size: 104857600 | ||
grpc_server_max_send_msg_size: 104857600 | ||
grpc_server_max_concurrent_streams: 1000 | ||
|
||
distributor: | ||
shard_by_all_labels: true | ||
pool: | ||
health_check_ingesters: true | ||
|
||
ingester_client: | ||
grpc_client_config: | ||
# Configure the client to allow messages up to 100MB. | ||
max_recv_msg_size: 104857600 | ||
max_send_msg_size: 104857600 | ||
use_gzip_compression: true | ||
|
||
ingester: | ||
# We want our ingesters to flush chunks at the same time to optimise | ||
# deduplication opportunities. | ||
spread_flushes: true | ||
chunk_age_jitter: 0 | ||
|
||
walconfig: | ||
wal_enabled: true | ||
recover_from_wal: true | ||
wal_dir: /tmp/cortex/wal | ||
|
||
lifecycler: | ||
# The address to advertise for this ingester. Will be autodiscovered by | ||
# looking up address on eth0 or en0; can be specified if this fails. | ||
# address: 127.0.0.1 | ||
|
||
# We want to start immediately and flush on shutdown. | ||
join_after: 0 | ||
min_ready_duration: 0s | ||
final_sleep: 0s | ||
num_tokens: 512 | ||
tokens_file_path: /tmp/cortex/wal/tokens | ||
|
||
# Use an in memory ring store, so we don't need to launch a Consul. | ||
ring: | ||
kvstore: | ||
store: inmemory | ||
replication_factor: 1 | ||
|
||
# Use local storage - BoltDB for the index, and the filesystem | ||
# for the chunks. | ||
schema: | ||
configs: | ||
- from: 2019-07-29 | ||
store: boltdb | ||
object_store: filesystem | ||
schema: v10 | ||
index: | ||
prefix: index_ | ||
period: 1w | ||
|
||
storage: | ||
boltdb: | ||
directory: /tmp/cortex/index | ||
|
||
filesystem: | ||
directory: /tmp/cortex/chunks | ||
|
||
delete_store: | ||
store: boltdb | ||
|
||
purger: | ||
object_store_type: filesystem | ||
|
||
frontend_worker: | ||
# Configure the frontend worker in the querier to match worker count | ||
# to max_concurrent on the queriers. | ||
match_max_concurrent: true | ||
|
||
# Configure the ruler to scan the /tmp/cortex/rules directory for prometheus | ||
# rules: https://prometheus.io/docs/prometheus/latest/configuration/recording_rules/#recording-rules | ||
ruler: | ||
enable_api: true | ||
enable_sharding: false | ||
storage: | ||
type: local | ||
local: | ||
directory: /tmp/cortex/rules |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
# Copyright The OpenTelemetry Authors | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
|
||
version: "3" | ||
|
||
services: | ||
app: | ||
image: golang:1.14-alpine | ||
volumes: | ||
- .:/app | ||
working_dir: /app | ||
command: go run main.go | ||
cortex: | ||
image: quay.io/cortexproject/cortex:v1.3.0-rc.1 | ||
command: | ||
- -config.file=./config/cortexConfig.yml | ||
volumes: | ||
- ./cortexConfig.yml:/config/cortexConfig.yml:ro | ||
ports: | ||
- 9009:9009 | ||
grafana: | ||
image: grafana/grafana:latest | ||
ports: | ||
- 3000:3000 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
module go.opentelemetry.io/contrib/exporters/metric/cortex/example | ||
|
||
go 1.14 | ||
|
||
require ( | ||
go.opentelemetry.io/contrib/exporters/metric/cortex v0.10.1 | ||
go.opentelemetry.io/contrib/exporters/metric/cortex/utils v0.10.1 | ||
go.opentelemetry.io/otel v0.10.0 | ||
go.opentelemetry.io/otel/sdk v0.10.0 | ||
gopkg.in/yaml.v2 v2.2.5 // indirect | ||
) |
Oops, something went wrong.