impress-2020/src/server/lib/beeline-graphql.js
Matchu 7f0a450480 Apply sampling rates to Honeycomb events
Oops, we get a _lot_ of outfit image requests, and it's pushing the limits of our free Honeycomb plan! But I don't really need all that much detail, because there's so many.

So, we here apply sampling! `api/outfitImage` is getting a 1/10 rate, and for GraphQL, `ApiOutfitImage` is getting 1/10, and `SearchPanel` is getting 1/5.

I had to add a `addTraceContext` call, to give all the child events awareness of what operation they're being called in, too!

I haven't actually tested that this is working-working, just that the endpoints still return good data. We'll see how it shakes out in prod!

But I did add `console.log(sampleRate, shouldSample, data);` to the `samplerHook` briefly, to see the data flow through, and I reloaded a `SearchPanel` request a few times and observed a plausibly 20% success rate.
2021-05-26 18:50:19 -07:00

25 lines
524 B
JavaScript

import beeline from "honeycomb-beeline";
const beelinePlugin = {
requestDidStart() {
const trace = beeline.startTrace();
return {
didResolveOperation({ operationName }) {
beeline.addContext({
name: operationName,
operation_name: operationName,
});
beeline.addTraceContext({
operation_name: operationName,
});
},
willSendResponse() {
beeline.finishTrace(trace);
},
};
},
};
module.exports = {
beelinePlugin,
};