TypeScript
Reference documentation for the HoneyHive Logger
Overview
The HoneyHive Logger is a lightweight, stateless SDK designed to track and monitor AI applications by wrapping HoneyHive’s /events
endpoints. With no external dependencies, it’s particularly well-suited for serverless execution and regulated environments with strict security requirements.
Installation
npm install @honeyhive/logger
API Reference
The logger provides three main functions for interacting with HoneyHive’s event tracking system:
start(options)
Starts a new session with HoneyHive. This function initializes a tracking session and returns a session ID that can be used to correlate subsequent events.
Parameters:
- options (
Object
): Configuration options for starting a session.- apiKey (
string
, required if not set via env): Your HoneyHive API key. Can be set viaHH_API_KEY
env var. - project (
string
, required if not set via env): The project name. Can be set viaHH_PROJECT
env var. - sessionName (
string
, optional): Tag to filter sessions (e.g., “v1”, “au1i249c”). Defaults to project name. - source (
string
, optional): Environment identifier. Defaults to “dev” orHH_SOURCE
env var. - config (
Object
, optional): Configuration details like experiment versions, model names, etc. - inputs (
Object
, optional): Input parameters for the session. - metadata (
Object
, optional): Additional metadata for the session. - userProperties (
Object
, optional): User-defined properties for the session. - sessionId (
string
, optional): A valid UUIDv4 for correlation. Generated if not provided. - serverUrl (
string
, optional): HoneyHive API server URL. Defaults to “https://api.honeyhive.ai” orHH_API_URL
env var. - verbose (
boolean
, optional): Enable detailed error messages. Defaults to false.
- apiKey (
Returns:
Promise<string>
: The session ID (UUIDv4)
Example:
log(options)
Logs an event to HoneyHive. This function records individual events within a session, such as model inferences, tool executions, or chain operations.
Parameters:
- options (
Object
): Configuration options for logging an event.- apiKey (
string
, required if not set via env): Your HoneyHive API key. Can be set viaHH_API_KEY
env var. - project (
string
, required if not set via env): The project name. Can be set viaHH_PROJECT
env var. - sessionId (
string
, required): The session ID to log the event under. - eventName (
string
, required): Name of the event being logged. - eventType (
string
, optional): Type of event - “model”, “tool”, or “chain”. Defaults to “tool”. - config (
Object
, optional): Configuration details for the event. - inputs (
Object
, optional): Input parameters for the event. - outputs (
Object
, optional): Output data from the event. - metadata (
Object
, optional): Additional metadata for the event. - durationMs (
number
, optional): Duration of the event in milliseconds. Defaults to 10. - serverUrl (
string
, optional): HoneyHive API server URL. Defaults to “https://api.honeyhive.ai” orHH_API_URL
env var. - verbose (
boolean
, optional): Enable detailed error messages. Defaults to false.
- apiKey (
Returns:
Promise<string>
: The event ID (UUIDv4)
Example:
update(options)
Updates an existing event or session with additional data. This function allows you to enrich events or sessions with feedback, metrics, or other information after they’ve been created.
Parameters:
- options (
Object
): Configuration options for updating an event or session.- apiKey (
string
, required if not set via env): Your HoneyHive API key. Can be set viaHH_API_KEY
env var. - eventId (
string
, required): The ID to update (can be either a session_id or event_id). - metadata (
Object
, optional): Additional metadata to add. - feedback (
Object
, optional): User feedback data. - metrics (
Object
, optional): Computed metrics data. - config (
Object
, optional): Updated configuration data. - outputs (
Object
, optional): Additional output data. - userProperties (
Object
, optional): Updated user-defined properties. - durationMs (
number
, optional): Duration in milliseconds. - serverUrl (
string
, optional): HoneyHive API server URL. Defaults to “https://api.honeyhive.ai” orHH_API_URL
env var. - verbose (
boolean
, optional): Enable detailed error messages. Defaults to false.
- apiKey (
Returns:
Promise<void>
Example:
Error Handling
The logger implements robust error handling with exponential backoff and jitter for retrying failed requests. It handles various types of errors including:
- Network connectivity issues
- API authentication errors
- Invalid parameters
- Server-side errors
When verbose
mode is enabled, detailed error information is thrown as exceptions. In non-verbose mode, errors are logged to the console and functions return null
or void.
Retryable Errors
The following errors are automatically retried with backoff:
- Network errors
- Server errors (HTTP 500-599)
- Rate limiting responses (HTTP 429)
- Request timeouts (HTTP 408)
Configuration
The retry mechanism can be configured with the following defaults:
- Maximum retries: 3
- Base delay: 1.0 seconds
- Maximum delay: 5.0 seconds
- Request timeout: 5.0 seconds
Environment Variables
The logger supports configuration through environment variables:
HH_API_KEY
: Your HoneyHive API keyHH_PROJECT
: Your project nameHH_SOURCE
: Environment identifierHH_API_URL
: HoneyHive API server URL
These environment variables can be used instead of passing the corresponding options in function calls.