Package Exports
- worker-axiom
- worker-axiom/src/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (worker-axiom) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
worker-axiom
Axiom wrapper for Cloudflare workers. This package provides a simple way to ingest data to Axiom from Cloudflare workers. You can then use the ingested data to view logs, create dashboards, and monitors.
Prerequisites
- Axiom account
- Axiom API token
Set up
Add the AXIOM_API_TOKEN environment variable to your Cloudflare worker.
Usage
Logging
Note: You must call
sendLogs()to send the logs to Axiom.
import { createAxiomClient, getRequestMetadata } from 'worker-axiom';
export default {
async fetch(request: Request, env: Env, ctx: ExecutionContext): Promise<Response> {
const createLogger = createAxiomClient({ orgId: '<my-org-id>', datasetName: '<axiom-data-set-name>', apiToken: env.AXIOM_API_TOKEN });
const mainLogger = createLogger(getRequestMetadata(request));
mainLogger.log('Main worker function', {
origin,
referer,
requestedFrom,
requestOrigin,
apiEndpoint,
method,
});
// must call sendLogs() to send the logs to Axiom
mainLogger.sendLogs();
// ... rest of the codeUpdate logger data
import { createAxiomClient, getRequestMetadata } from 'worker-axiom';
export default {
async fetch(request: Request, env: Env, ctx: ExecutionContext): Promise<Response> {
const createLogger = createAxiomClient({ orgId: '<my-org-id>', datasetName: '<axiom-data-set-name>', apiToken: env.AXIOM_API_TOKEN });
const mainLogger = createLogger(getRequestMetadata(request));
mainLogger.log('Main worker function', {
origin,
referer,
requestedFrom,
requestOrigin,
apiEndpoint,
method,
});
const projectSettings = await getProjectSettingsFromDatabase(request);
// project settings will be added to all the logs
mainLogger.updateLoggerData({ ...projectSettings });
// must call sendLogs() to send the logs to Axiom
mainLogger.sendLogs();
// ... rest of the codeDisable logging to console
import { createAxiomClient, getRequestMetadata } from 'worker-axiom';
export default {
async fetch(request: Request, env: Env, ctx: ExecutionContext): Promise<Response> {
const createLogger = createAxiomClient({ orgId: '<my-org-id>', alsoLogToConsole: false,
datasetName: '<axiom-data-set-name>', apiToken: env.AXIOM_API_TOKEN });
const mainLogger = createLogger(getRequestMetadata(request));
// rest of the codeSponsers
- docsly.dev - Get actionable feedback and insights from your documentation.
License
MIT