An Apollo plugin to expose GraphQL metrics as prometheus metrics
npm install @thecodenebula/apollo-prometheus-pluginnpm install @thecodenebula/apollo-prometheus-plugin
``typescript
import { ApolloServer, gql } from 'apollo-server-express';
import { prometheusPlugin } from 'apollo-prometheus-plugin';
import { Registry } from 'prom-client';
import { prometheusPlugin } from '@thecodenebula/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');
});
``
| 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 |