Comments (1)
@jasonlimantoro I know it's been a while since you commented, but for posterity's sake I'll include an answer (not maintainer, so take this with a grain of salt).
As far as I can tell, the instance of express()
that you pass to createPrometheusExporterPlugin({ yourExpressInstance })
doesn't have to be the same express serving your Apollo Server. I initially thought there would be some configuration allowing me to decide which port to expose, but ended up just instantiating a new Express server specifically for serving prometheus metrics, bound it to a non-internet facing port, and then configured that port's access according to the restrictions I had. Beyond that I can't specify how you'd configure your particular stack.
A basic example might look like this:
const metricsApp = express();
metricsApp.listen('6666', () => {
console.log('Apollo Prometheus Exporter server running on :6666');
}
const prometheusExporterPlugin = createPrometheusExporterPlugin({ metricsApp });
const server = new ApolloServer({
typeDefs,
resolvers,
plugins: [prometheusExporterPlugin],
});
const apolloApp = express();
server.applyMiddleware({ apolloApp });
apolloApp.listen('4000', () => {
console.log('Apollo Express running at :4000');
});
In this case, localhost:4000/graphql would serve your apollo server, and localhost:6666/metrics would serve your prometheus metrics.
from apollo-prometheus-exporter.
Related Issues (20)
- [question] how to ignore specific error? HOT 2
- apollo-server 3 support HOT 6
- Customize `durationHistogramsBuckets` HOT 3
- Optional `QUERY_DURATION` metric in failed queries HOT 3
- Possible perf_hooks memory leak detected HOT 3
- Support prom-client v14? HOT 1
- didEndHook is not a function error
- Plugin metrics not being recorded/returned HOT 2
- durationHistogramBuckets doesn`t work HOT 1
- Trying use skipMetrics, but it doesn't work HOT 1
- Support for metrics in the `didResolveSource` event
- defaultLabels & hostnameLabel not functional
- Metrics on the number errors returned
- Support apolo server v4 HOT 4
- Apollo logs not being flushed
- Default metrics are not being registered in the registry passed in register option
- Support clustering mode HOT 1
- Support prom-client v15 HOT 3
- Nest.js implementation
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from apollo-prometheus-exporter.