impress-2020/pages/api/sendFeedback.js
Matchu 19f1ec092e Turn on Honeycomb instrumentation again
Well, instrumentation seems to be working fine again! The bug we ran into during commit e5081dab7e is gone. Cool!

I want to be able to see what's making the new box slow. My hypothesis was (and it seems to be right) that communication with the database on the Classic DTI server is slow.

But now that they're on the same Linode account and region, I think I can set up a private VLAN to make them muuuch faster. We'll try it out!
2021-11-26 23:41:22 -08:00

56 lines
1.5 KiB
JavaScript

const beeline = require("honeycomb-beeline")({
writeKey: process.env["HONEYCOMB_WRITE_KEY"],
dataset:
process.env["NODE_ENV"] === "production"
? "Dress to Impress (2020)"
: "Dress to Impress (2020, dev)",
serviceName: "impress-2020-gql-server",
});
import sendgridMail from "@sendgrid/mail";
sendgridMail.setApiKey(process.env.SENDGRID_API_KEY);
async function handle(req, res) {
const { content, email } = req.body;
if (!content) {
return res.status(400).send("Content must not be empty");
}
let contentSummary = content.trim();
if (contentSummary.length > 60) {
contentSummary = contentSummary.slice(0, 40) + "…";
}
const senderText = email || "<anonymous>";
console.info(`Sending from ${senderText}:\n${content}`);
const body = `${content}\n\nSent by ${senderText}`;
try {
await sendgridMail.send({
to: "matchu1993@gmail.com",
from: "impress-2020-feedback@openneo.net",
subject: `DTI feedback: ${contentSummary}`,
replyTo: email || undefined,
text: body,
});
} catch (e) {
console.error(e);
if (e.response && e.response.body && e.response.body.errors) {
console.error(e.response.body.errors);
}
return res.status(500).send("Error sending message, see logs");
}
return res.status(200).send();
}
async function handleWithBeeline(req, res) {
beeline.withTrace(
{ name: "api/sendFeedback", operation_name: "api/sendFeedback" },
() => handle(req, res)
);
}
export default handleWithBeeline;