Honeycomb Pages Plugin 自动将 trace 发送到 Honeycomb 以进行分析和可观测性。
npm i @cloudflare/pages-plugin-honeycombyarn add @cloudflare/pages-plugin-honeycombpnpm add @cloudflare/pages-plugin-honeycombbun add @cloudflare/pages-plugin-honeycomb以下用法示例使用需要在 Pages 项目设置中设置的环境变量。
import honeycombPlugin from "@cloudflare/pages-plugin-honeycomb";
export const onRequest: PagesFunction<{
HONEYCOMB_API_KEY: string;
HONEYCOMB_DATASET: string;
}> = (context) => {
return honeycombPlugin({
apiKey: context.env.HONEYCOMB_API_KEY,
dataset: context.env.HONEYCOMB_DATASET,
})(context);
};或者,可以硬编码(不建议用于 API 密钥)以下设置:
import honeycombPlugin from "@cloudflare/pages-plugin-honeycomb";
export const onRequest = honeycombPlugin({
apiKey: "YOUR_HONEYCOMB_API_KEY",
dataset: "YOUR_HONEYCOMB_DATASET_NAME",
});此 Plugin 基于 @cloudflare/workers-honeycomb-logger,接受相同的配置选项 ↗。
请确保在 Honeycomb 数据集设置中启用 Automatically unpack nested JSON(自动解包嵌套 JSON) 选项,并将 Maximum unpacking depth(最大解包深度) 设置为 5。
data.honeycomb.tracer 有两个方法用于附加有关给定 trace 的额外信息:
data.honeycomb.tracer.log,接受单个String参数。data.honeycomb.tracer.addData,接受单个任意数据对象参数。
有关这些方法的更多信息,请参阅 @cloudflare/workers-honeycomb-logger 文档 ↗。
例如,如果要使用 addData 方法附加用户信息:
import type { PluginData } from "@cloudflare/pages-plugin-honeycomb";
export const onRequest: PagesFunction<unknown, any, PluginData> = async ({
data,
next,
request,
}) => {
// Authenticate the user from the request and extract user's email address
const email = await getEmailFromRequest(request);
data.honeycomb.tracer.addData({ email });
return next();
};