📓
BK Tricks
<- back to the bodik.tech
  • BK Tricks
  • AI\ML
    • Using PostgreSQL with pgvector extension to store and search embeddings
    • JavaScript-based tools
  • Databases
    • PostgreSQL
      • How to Use HOT Updates in PostgreSQL to Boost Your UPDATE Queries
      • Maximizing the Potential of Embeddings with PGvector: A Comprehensive Guide
    • Elasticsearch
      • The impact of Elasticsearch segments on search speed
      • How to aggregate Elasticsearch results by the timestamp on day interval?
      • Mastering Vector Search in Elasticsearch: Mapping Index for KNN
    • Prometheus
      • What is Prometheus and what is it usually used for?
      • How to create a simple Prometheus exporter?
    • Clickhouse
      • How to make a difference of two arrays in ClickHouse?
      • Materialized View that parses JSON or nested JSON from the string field of another table
      • Attach S3 as a storage engine to ClickHouse
      • Table with TTL to S3
      • Partition ClickHouse table based on unique string hash
      • Create a connection to other ClickHouse instance
  • Infrastructure
    • AWS
      • SAM
        • Schema to create a resource of DynamoDB table using SAM
        • Example of enabling streaming functionality of DynamoDB table using SAM resource
        • Schema to create Lambda function resource using SAM
        • Adding environment variables to Lambda function resource using SAM
        • Adding a scheduled timer to start Lambda function resource using SAM
        • Reading stream from DynamoDB by Lambda function declared using SAM
        • Schema to create a resource of SQS queue using SAM
      • CloudFront
        • How to make redirect using Lambda@Edge?
  • Programming
    • JavaScript
      • Convert hexadecimal string to an array of Uint8 values
      • How to decrypt data encoded with NaCl cryptographic algorithm using NodeJS?
      • How to add a property to JavaScript object if it is not empty or null?
  • Tools
    • Kafka
      • Useful tools
      • How to view all of the offsets for some consumer groups in Kafka using CLI?
      • How to set Kafka offsets of a consumer group to a predefined list for all partitions at once?
  • Math
    • Transform the number from one numeric range to another
  • Frontend
    • Useful resources
Powered by GitBook
On this page
  1. Databases
  2. Prometheus

How to create a simple Prometheus exporter?

There are often scenarios when you need to build something custom on Prometheus. An example on a simple exporter(plugin) for Prometheus.

PreviousWhat is Prometheus and what is it usually used for?NextClickhouse

Last updated 2 years ago

The simplest way is just to create an API with the /metrics route that will serve your metrics to Prometheus in a typical way. Your API get a response should look like this:

# HELP metric_name metric_help
# TYPE metric_name counter
metric_name 10

Where # HELP is your metric name and some brief description of your metric, # TYPE it is the type of the metric(), and the last row is the value of your metric.

To configure your Prometheus to read from this API(let's imagine it runs locally on a 3000 port), add the next configuration to your Prometheus server:

scrape_configs:
  - job_name: prometheus
    metrics_path: /metrics
    scrape_interval: 30s
    static_configs:
    - targets:
      - localhost:3000

You can also use already existing libraries and frameworks for this purpose. A nice example of a library like this is for NodeJS.

the list of supported types
prom-client