跳转到内容
搜索文档

Honeycomb

最后更新 查看 MarkdownAgent 设置

Honeycomb Pages Plugin 自动将 trace 发送到 Honeycomb 以进行分析和可观测性。

安装

npm i @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

按照上述说明在 Honeycomb 中开启 Automatically unpack nested 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();
};

这篇文档对您有帮助吗?