tomasAlabes / apollo-prometheus-plugin

An Apollo Plugin for Prometheus metrics

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Apollo Prometheus Plugin

Fork with support for latest prom-client versions.

Install

npm install @talabes/apollo-prometheus-plugin

yarn add @talabes/apollo-prometheus-plugin

Usage

import { ApolloServer, gql } from 'apollo-server-express';
import { prometheusPlugin } from 'apollo-prometheus-plugin';
import { Registry } from 'prom-client';
import { prometheusPlugin } from '@talabes/apollo-prometheus-plugin';

const register = new Registry();

const app = express();

app.get('/metrics', (_, res) => res.send(register.metrics()));

const server = new ApolloServer({
  typeDefs,
  resolvers,
  plugins: [prometheusPlugin(register, { enableNodeMetrics: true })],
});

server.applyMiddleware({ app, path: '/' });
app.listen({ port: 8080 }, () => {
  console.log('Listening');
});

Available metrics and labels

metric type labels
errors_encountered Counter operationName
operation
error
requests_resolved Counter operationName
operation
attributes_requested Counter fieldName
parentType
resolver_time Histogram fieldName
parentType
returnType
total_request_time Histogram operationName
operation

About

An Apollo Plugin for Prometheus metrics

License:MIT License


Languages

Language:TypeScript 97.3%Language:JavaScript 2.7%