tencent cloud

All product documents
Cloud Object Storage
Monitoring GooseFS Based on Prometheus
Last updated: 2024-03-25 16:04:01
Monitoring GooseFS Based on Prometheus
Last updated: 2024-03-25 16:04:01
GooseFS allows you to output metrics to different monitoring systems, including Prometheus. Prometheus is an open-source monitoring framework that Tencent Cloud Observability Platform has integrated with. This document introduces GooseFS metrics and how to report them to the self-built/in-cloud Prometheus.

Preparations

Before setting up the Prometheus monitoring system, you need to:
Configure a GooseFS cluster.
Download the Prometheus installation package (official or Tencent Cloud version).
Download and configure Grafana.

Enabling GooseFS Metric Report

1. Edit the GooseFS configuration file conf/goosefs-site.properties by adding the configuration items below. Then, use goosefs copyDir conf/ to copy all worker nodes and use ./bin/goosefs-start.sh all to restart the cluster.
goosefs.user.metrics.collection.enabled=true
goosefs.user.metrics.heartbeat.interval=10s
2. You can run the following command to view the Prometheus master metrics (port: 9201) and worker metrics (port: 9204):
curl <LEADING_MASTER_HOSTNAME>:<MASTER_WEB_PORT>/metrics/prometheus/
# HELP Master_CreateFileOps Generated from Dropwizard metric import (metric=Master.CreateFileOps, type=com.codahale.metrics.Counter)
...

curl <WORKER_IP>:<WOKER_PORT>/metrics/prometheus/
# HELP pools_Code_Cache_max Generated from Dropwizard metric import (metric=pools.Code-Cache.max, type=com.codahale.metrics.jvm.MemoryUsageGaugeSet$$Lambda$51/137460818)
...

Reporting Metrics to Self-Built Prometheus

1. Download the Prometheus installation package, decompress it, and modify promethus.yml as follows:
# prometheus.yml
global:
scrape_interval: 10s
evaluation_interval: 10s
scrape_configs:
- job_name: 'goosefs masters'
metrics_path: /metrics/prometheus
file_sd_configs:
- refresh_interval: 1m
files:
- "targets/cluster/masters/*.yml"
- job_name: 'goosefs workers'
metrics_path: /metrics/prometheus
file_sd_configs:
- refresh_interval: 1m
files:
- "targets/cluster/workers/*.yml"

2. Create targets/cluster/masters/masters.yml and add the IP and port of the master:
- targets:
- "&lt;TARGERTS_MASTER_IP>:&lt;TARGERTS_MASTER_PORT>"
3. Create targets/cluster/workers/workers.yml and add the IP and port of the worker:
- targets:
- "&lt;TARGERTS_WORKER_IP>:&lt;TARGERTS_WORKER_PORT>"
4. Start Prometheus. --web.listen-address specifies the Prometheus listen address. The default port number is 9090.
nohup ./prometheus --config.file=prometheus.yml --web.listen-address="<LISTEN_IP>:<LISTEN_PORT>" > prometheus.log 2>&1 &
5. View the GUI:
http://<PROMETHEUS_BI_IP>:<PROMETHEUS_BI_PORT>
6. View the target instance:
http://<PROMETHEUS_BI_IP>:<PROMETHEUS_BI_PORT>/targets

Reporting Metrics to Tencent Cloud Prometheus

1. Install the Prometheus agent on the master as instructed in the installation guide.
wget https://rig-1258344699.cos.ap-guangzhou.myqcloud.com/prometheus-agent/agent_install && chmod +x agent_install && ./agent_install prom-12kqy0mw agent-grt164ii ap-guangzhou <secret_id> <secret_key>
2. Configure jobs for the master and worker:
Method 1:
job_name: goosefs-masters
honor_timestamps: true
metrics_path: /metrics/prometheus
scheme: http
file_sd_configs:
- files:
- /usr/local/services/prometheus/targets/cluster/masters/*.yml
refresh_interval: 1m
job_name: goosefs-workers
honor_timestamps: true
metrics_path: /metrics/prometheus
scheme: http
file_sd_configs:
- files:
- /usr/local/services/prometheus/targets/cluster/workers/*.yml
refresh_interval: 1m
Note:
Do not use spaces in the value of job_name. However, the value of job_name in single-machine Prometheus can contain spaces.
Method 2:
job_name: goosefs masters
honor_timestamps: true
metrics_path: /metrics/prometheus
scheme: http
static_configs:
- targets:
- "<TARGERTS_MASTER_IP>:<TARGERTS_MASTER_PORT>"
refresh_interval: 1m

job_name: goosefs workers
honor_timestamps: true
metrics_path: /metrics/prometheus
scheme: http
static_configs:
- targets:
- "<TARGERTS_WORKER_IP>:<TARGERTS_WORKER_PORT>"
refresh_interval: 1m
Note:
If you use method 2 to configure jobs, you don’t need to create the masters.yml and workers.yml files under targets/cluster/masters/.

Using Grafana to View Metrics

1. Start Grafana.
nohup ./bin/grafana-server web > grafana.log 2>&1 &
2. Open the login page http://&lt;GRAFANA_IP&gt;:&lt;GRAFANA_PORT&gt;. By default, Grafana will be listening on port 3000, and both the “username” and “password” are “admin”. You can change the password after your initial login.
3. Create a Prometheus data source.
<PROMETHEUS_IP>:<PROMETHEUS_PORT>
4. Import Grafana dashboards for GooseFS. Select JSON import (Download JSON) and use it for the data source created above.
Note:
You need to set the password when purchasing the in-cloud Prometheus. The configuration of the in-cloud Grafana monitoring GUI is similar to that mentioned above. Note that the configuration of job_name should be consistent.
5. You can export a modified dashboard.
Was this page helpful?
You can also Contact Sales or Submit a Ticket for help.
Yes
No

Feedback

Contact Us

Contact our sales team or business advisors to help your business.

Technical Support

Open a ticket if you're looking for further assistance. Our Ticket is 7x24 available.

7x24 Phone Support
Hong Kong, China
+852 800 906 020 (Toll Free)
United States
+1 844 606 0804 (Toll Free)
United Kingdom
+44 808 196 4551 (Toll Free)
Canada
+1 888 605 7930 (Toll Free)
Australia
+61 1300 986 386 (Toll Free)
EdgeOne hotline
+852 300 80699
More local hotlines coming soon