Initial Commit
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
import { metrics, type Tracer, trace } from "@opentelemetry/api";
|
||||
|
||||
const meter = metrics.getMeter("@suaveplan/bitpacker-compressed");
|
||||
|
||||
export function getBitPackerCompressedTracer(): Tracer {
|
||||
return trace.getTracer("@suaveplan/bitpacker-compressed");
|
||||
}
|
||||
|
||||
/**
|
||||
* Counter incremented per top-level compress / decompress call. Labels:
|
||||
* `op` (`compress` | `decompress`), `algorithm` (e.g. `gzip`, `deflate`,
|
||||
* `none`, `rle`), and `success`.
|
||||
*/
|
||||
export const compressionOpsTotal = meter.createCounter(
|
||||
"bitpacker_compressed.ops.total",
|
||||
{
|
||||
description: "Total compression / decompression operations",
|
||||
unit: "{ops}",
|
||||
}
|
||||
);
|
||||
|
||||
/**
|
||||
* Histogram of operation duration in milliseconds.
|
||||
*/
|
||||
export const compressionOpDurationMs = meter.createHistogram(
|
||||
"bitpacker_compressed.op.duration_ms",
|
||||
{
|
||||
description: "Duration of compression / decompression in milliseconds",
|
||||
unit: "ms",
|
||||
}
|
||||
);
|
||||
|
||||
/**
|
||||
* Histogram of compression ratio (compressed bytes / input bytes), labelled
|
||||
* by `algorithm`. Recorded only on successful `compress` calls.
|
||||
*/
|
||||
export const compressionRatio = meter.createHistogram(
|
||||
"bitpacker_compressed.compression.ratio",
|
||||
{
|
||||
description:
|
||||
"Compression ratio (output_bytes / input_bytes) per successful compress",
|
||||
unit: "1",
|
||||
}
|
||||
);
|
||||
|
||||
export const BITPACKER_COMPRESSED_SPAN_NAMES = {
|
||||
compress: "bitpacker_compressed.compress",
|
||||
decompress: "bitpacker_compressed.decompress",
|
||||
pack: "bitpacker_compressed.pack",
|
||||
unpack: "bitpacker_compressed.unpack",
|
||||
} as const;
|
||||
Reference in New Issue
Block a user