===== Creating a New Metric on Prometheus ===== Author: Máté Domonics on 06/03/2023 ==== SQL Exporter ==== SQL Exporter is used to test your SQL queries before deploying them. Use this [[https://github.com/free/sql_exporter/releases|link]] to download it. (I downloaded the darwin-amd64 version) === Usage of SQL Exporter === - Open up the folder in your preferred IDE for ease of access and change the **sql_exporter.yml** file to accommodate for the collector that you will be using. Also make sure to have the correct data source. - Inside the **[collector_name].collector.yml** file, create your desired metrics. - //Make sure to double check the correct syntax for the yaml file, as it is indentation sensitive.// - Highly recommend using a database querying workbench such as **DBeaver** or **MySQL Workbench** to quickly test your SQL queries, as this will also allow you to preview what data you can expect to receive. - When your desired query is made, run the **sql_exporter** file in a terminal and observe any errors that may occur. If it runs successfully, a port will be displayed on screen. - //Note that the **values** field is mandatory. Structure your SQL query around this.// - Use this port number and go to http://localhost:[PortNumber]. Here, you can review whether your metrics got picked up correctly, and if they didn't, an error will be printed to the terminal where you have **sql_exporter** running. Analyse and fix this error if needed. - Once your metric has been checked and it works correctly when using **sql_exporter**, you can move on to the next step. ==== Deploying into the codebase ==== - Clone the [[https://bitbucket.org/errigal/prometheus-monitoring-config/src/master/|prometheus-monitoring-config repo]] to your local machine and find the collection that you want to make changes to. - This is found at: **prometheus-monitoring-config/files/collectors** - Once found, place your SQL queries into the correct collector at the correct position. - //Some collections are grouped together by multiple customers, so placement can be important!// - Save your changes locally, and move on to [[http://wiki.err/doku.php?id=watchdogs:creating_a_new_alert|creating a new alert]].