We'll be deploying our metrics server to an Azure Kubernetes Service (AKS) cluster. HTTP requests are mostly used to query Prometheus, whilst gRPC requests are mostly used within Thanos' Store API. Thanos uses a mix of HTTP and gRPC requests. The overall architecture can be described as follows (via: Thanos Quick Tutorial). Ruler: Provides the ruler API that is used to evaluate rules and alerts from the Prometheus Alertmanager. It’s completely independent of the other components. Query Layer: Provides all the components required to query the Data, including the Web UI and the API.Ĭompactor: Reads from object storage and compacts the data that’s not compacted yet. Thanos Store Gateway: This component is responsible for querying the object storage and exposing a StoreAPI that is queried by the other components. It’s composed of a StoreAPI and a Shipper, the shipper is responsible for sending the metrics to the object storage. Thanos Sidecar: The sidecar runs alongside Prometheus server to gather the metrics that are stored on disk. Thanos is composed of several components: Several supported object storage clients are available. Thanos currently depends on Prometheus v2.2.1+ and an optional object storage if you want to store your data in a remote location. You also don’t need to install all of those features, and you can have a subset of Thanos running in your cluster. Thanos provides all of this and more out of the box in a single binary. Secondly, the more data we have the slower the querying will become, and for this downsampling and compaction techniques are used to reduce the size of the data and improve query times. Firstly, unlimited data requires storage that will scale accordingly. Long term storage may require unlimited retention periods, with ever-growing storage requirements. Storing metrics data for long term use requires it to be stored in a way that is optimized for that use. It is not a new implementation of Prometheus, but a pre-built setup that has been designed to be used in production environments when long term storage is needed. Thanos is an open source Prometheus setup with long term storage capabilities. This generally includes the use of a federated set-up, and the use of a shared storage solution which, in Kubernetes, is usually accompised with a shared PersistentVolume. There is also a configuration overhead when we want to scale our Prometheus deployment and make it highly available. You can configure a lot of options but the data management options are limited. Prometheus has its storage solution and supports both on-disk storage as well as remote locations. However, it is not a data storage solution and therefore isn't not focused on storing data for historical purposes. Prometheus is a metrics collector, it can be used to collect metrics from any source, and it can be used to generate graphs. However, despite Prometheus being an excellent way to monitor your AKS cluster, it lacks some functionality to save metrics for future use and enable us to query historical data. In our previous article we explored how to deploy Grafana and Prometheus on AKS.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |