Listen to this story
Trying to improve my writing skills by breaking and fixing stuff so there are a lot of things I learn and write.
This story contains new, firsthand information uncovered by the writer.
With all the tools you have in production, it’s important that you can effortlessly test the user flows end-to-end, locally. The rationale behind such is the reduced feedback cycle that saves a developer a lot of time to achieve the desired outcome.
I was working on sending some telemetry data from my Golang web application to Prometheus, and then creating a Grafana dashboard out of it. But to test the flow, I needed a local setup of Prometheus + Grafana to check if the metrics were correct, and that I was building the right PromQL query to create the dashboard.
I am maintaining a Github repo for all the docker-compose setups I require for my local testing, with Prometheus + Grafana being a new addition to it. If you need a similar setup, refer to this post or my Github Repository and save your setup time to focus more on building things.
Clone the repo: https://github.com/ninadingole/docker-images
Then go to prometheus-grafana
folder and run docker-compose up -d
.
This will start Prometheus on http://localhost:9090
and Grafana on http://localhost:3000
.
Prometheus running on localhost:9090
There is also a prometheus.yml
, the configuration file which you can use to add the local apps that you want to scrape.
Note: if your application is running inside a docker, then use host.docker.internal
as your hostname with the port to scrape the target.
global:
scrape_interval: 15s
evaluation_interval: 15s
rule_files:
# - "first.rules"
# - "second.rules"
scrape_configs:
- job_name: prometheus
static_configs:
- targets: ['localhost:9090']
- job_name: app
scrape_interval: 5s
static_configs:
- targets: ['host.docker.internal:10088']
Grafana settings to connect to local Prometheus
Once you have added the configs to connect Grafana to Prometheus like the image above, you are ready with an end-to-end setup on your local.
If you also have your own docker-compose stack setups that you use during your development, please don't hesitate to share with me by sending me a PR to the repository.
I hope you will find this docker-compose configuration useful and time saving. Please subscribe to the newsletter to get more articles delivered right to your inbox.
Thanks and Happy Coding!