# @xylabs/telemetry-exporter

[![npm][npm-badge]][npm-link]
[![license][license-badge]][license-link]

> Base functionality used throughout XY Labs TypeScript/JavaScript libraries

## Install

Using npm:

```sh
npm install {{name}}
```

Using yarn:

```sh
yarn add {{name}}
```

Using pnpm:

```sh
pnpm add {{name}}
```

Using bun:

```sh
bun add {{name}}
```


## License

See the [LICENSE](LICENSE) file for license rights and limitations (LGPL-3.0-only).

## Reference

### packages

  ### telemetry-exporter

    ### .temp-typedoc

      ### classes

        ### <a id="XyConsoleSpanExporter"></a>XyConsoleSpanExporter

[**@xylabs/telemetry-exporter**](#../README)

***

A console span exporter that formats spans with color-coded durations using chalk.
Spans are filtered by a configurable log level based on their duration.

## Extends

- `ConsoleSpanExporter`

## Constructors

### Constructor

```ts
new XyConsoleSpanExporter(logLevel?, logger?): XyConsoleSpanExporter;
```

### Parameters

#### logLevel?

`number` = `0`

#### logger?

`Logger` = `console`

### Returns

`XyConsoleSpanExporter`

### Overrides

```ts
ConsoleSpanExporter.constructor
```

## Properties

### durationToLogLevel

```ts
readonly static durationToLogLevel: number[];
```

Duration thresholds (in ms) that map to increasing log levels.

***

### logLevelToChalkColor

```ts
readonly static logLevelToChalkColor: ChalkInstance[];
```

Chalk color functions corresponding to each log level.

***

### logger

```ts
logger: Logger;
```

## Accessors

### logLevel

### Get Signature

```ts
get logLevel(): number;
```

The minimum log level required for a span to be exported.

#### Returns

`number`

## Methods

### export()

```ts
export(spans): void;
```

Export spans.

### Parameters

#### spans

`ReadableSpan`[]

### Returns

`void`

### Overrides

```ts
ConsoleSpanExporter.export
```

***

### logColor()

```ts
logColor(level): ChalkInstance;
```

Returns the chalk color function for the given log level.

### Parameters

#### level

`number`

The log level index.

### Returns

`ChalkInstance`

A chalk color function.

***

### spanLevel()

```ts
spanLevel(span): number;
```

Determines the log level of a span based on its duration.

### Parameters

#### span

`ReadableSpan`

The span to evaluate.

### Returns

`number`

The numeric log level (index into durationToLogLevel).

      ### functions

        ### <a id="spanDurationInMillis"></a>spanDurationInMillis

[**@xylabs/telemetry-exporter**](#../README)

***

```ts
function spanDurationInMillis(span): number;
```

Calculates the duration of a span in milliseconds from its high-resolution time tuple.

## Parameters

### span

`ReadableSpan`

The span to measure.

## Returns

`number`

The span duration in milliseconds.


[npm-badge]: https://img.shields.io/npm/v/@xylabs/telemetry-exporter.svg
[npm-link]: https://www.npmjs.com/package/@xylabs/telemetry-exporter
[license-badge]: https://img.shields.io/npm/l/@xylabs/telemetry-exporter.svg
[license-link]: https://github.com/xylabs/sdk-js/blob/main/LICENSE
