forked from microsoft/code-with-engineering-playbook
-
Notifications
You must be signed in to change notification settings - Fork 0
Prometheus observability tools #9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
kingfardthe1st
wants to merge
13
commits into
master
Choose a base branch
from
prometheus-observability-tools
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
13 commits
Select commit
Hold shift + click to select a range
26c7617
Adding initial overview page for Prometheus
tasdevani21 bd68c06
Update the main page with the link
tasdevani21 42a507e
Added an overview
20872bf
Added an overview
8b85b3e
Added metric types to overview
2fb2ccf
Updated integration with other tools
b5ae26f
Minor changes to the readme to include more notes
tasdevani21 764929c
Minor update
bed34a9
Resolved merge conflicts
5dd2983
Updated tools and services list
cba13bf
etc
c845d4b
Minor adjustments to the documentation
tasdevani21 cdee68c
Adding minor updates based on suggested changes for Prometheus docume…
tasdevani21 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or 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,40 @@ | ||
| # Prometheus | ||
|
|
||
| ## Overview | ||
|
|
||
| Originally built at SoundCloud, [Prometheus](https://prometheus.io/docs/introduction/overview/) is an open-source monitoring and alerting toolkit based on time series metrics data. It has become a de facto standard metrics solution in the Cloud Native world and widely used with Kubernetes. | ||
|
|
||
| The core of Prometheus is a server that scrapes and stores metrics. There are other numerous optional features and components like an Alert-manager and [client libraries](https://prometheus.io/docs/instrumenting/clientlibs/) for programming languages to extend the functionalities of Prometheus beyond the basics. | ||
| The client libraries offer four [metric types](https://prometheus.io/docs/concepts/metric_types/): `Counter`, `Gauge`, `Histogram`, and `Summary`. | ||
|
|
||
| ## Why Prometheus? | ||
|
|
||
| - Prometheus is a time series database and allow for events or measurements to be tracked, monitored, and aggregated over time. | ||
| - Prometheus is a pull-based tool. One of the biggest advantages of Prometheus over other monitoring tools is that Prometheus actively scrapes targets in order to retrieve metrics from them. Prometheus also supports the push model for pushing metrics. | ||
| - Prometheus allows for control over who to scrape, and how often to scrape them. Through the Prometheus server, there can be multiple scrape configurations, allowing for multiple rates for different targets. | ||
| - Similar to [Grafana](https://prometheus.io/docs/visualization/grafana/), visualization for the time series can be directly done through the Prometheus Web UI. The Web UI provides the ability to easily filter and have an overview of what is taking place with your different targets. | ||
| - Prometheus provides a powerful functional query language called PromQL (Prometheus Query Language) that lets the user aggregate time series data in real time. | ||
|
|
||
| ## Integration with Other Tools | ||
|
|
||
| The Prometheus client libraries allow you to add instrumentation to your code and expose internal metrics via an HTTP endpoint. The official [Prometheus client libraries](https://prometheus.io/docs/instrumenting/clientlibs/) currently are `Go`, `Java or Scala`, `Python` and `Ruby`. Unofficial third-party libraries include: `.NET/C#`, `Node.js`, and `C++`. | ||
|
|
||
| Prometheus metrics format is supported by a wide array of tools and services including: | ||
|
|
||
| - [Azure Monitor](https://docs.microsoft.com/en-us/azure/azure-monitor/containers/container-insights-prometheus-integration) | ||
| - [Stackdriver](https://cloud.google.com/stackdriver/docs/solutions/gke/prometheus) | ||
| - [Datadog](https://docs.datadoghq.com/integrations/prometheus/) | ||
| - [CloudWatch](https://aws.amazon.com/blogs/containers/using-prometheus-metrics-in-amazon-cloudwatch/) | ||
| - [New Relic](https://docs.newrelic.com/docs/integrations/prometheus-integrations/get-started/send-prometheus-metric-data-new-relic/) | ||
| - [Flagger](https://docs.flagger.app/tutorials/prometheus-operator) | ||
| - [Grafana](https://grafana.com/docs/grafana/latest/getting-started/getting-started-prometheus/) | ||
| - [GitLab](https://docs.gitlab.com/ee/user/project/integrations/prometheus.html) | ||
| - [etc...](https://prometheus.io/docs/operating/integrations/) | ||
|
|
||
| There are numerous [exporters](https://prometheus.io/docs/instrumenting/exporters/) which are used in exporting existing metrics from third-party databases, hardware, CI/CD tools, messaging systems, APIs and other monitoring systems. In addition to client libraries and exporters, there is a significant number of [integration points](https://prometheus.io/docs/operating/integrations/) for service discovery, remote storage, alerts and management. | ||
|
|
||
| ## References | ||
tasdevani21 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| - [Prometheus Docs](https://prometheus.io/docs) | ||
| - [Prometheus Best Practices](https://prometheus.io/docs/practices) | ||
| - [Grafana with Prometheus](https://prometheus.io/docs/visualization/grafana/) | ||
This file contains hidden or 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
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nit: The tools specified here are all analysis tools. There are tools that utilize the Prometheus data natively to automate aspects of operating environments and/or k8s clusters. An example is using Flagger w/ Istio to automate blue/green deployments based on live telemetry from Prometheus.
I've made this a nit, since it can be done in another PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I included this link which has an extensive list of tools and services Prometheus integrates with. Is that enough?