Next.js website for Rocky Mountain Vending company featuring: - Product catalog with Stripe integration - Service areas and parts pages - Admin dashboard with Clerk authentication - SEO optimized pages with JSON-LD structured data Co-authored-by: Cursor <cursoragent@cursor.com>
235 lines
No EOL
8.7 KiB
Text
235 lines
No EOL
8.7 KiB
Text
import type { SpanLink, SpanLinkJSON } from './link';
|
|
import type { Measurements } from './measurement';
|
|
import type { HrTime } from './opentelemetry';
|
|
import type { SpanStatus } from './spanStatus';
|
|
import type { TransactionSource } from './transaction';
|
|
type SpanOriginType = 'manual' | 'auto';
|
|
type SpanOriginCategory = string;
|
|
type SpanOriginIntegrationName = string;
|
|
type SpanOriginIntegrationPart = string;
|
|
export type SpanOrigin = SpanOriginType | `${SpanOriginType}.${SpanOriginCategory}` | `${SpanOriginType}.${SpanOriginCategory}.${SpanOriginIntegrationName}` | `${SpanOriginType}.${SpanOriginCategory}.${SpanOriginIntegrationName}.${SpanOriginIntegrationPart}`;
|
|
export type SpanAttributeValue = string | number | boolean | Array<null | undefined | string> | Array<null | undefined | number> | Array<null | undefined | boolean>;
|
|
export type SpanAttributes = Partial<{
|
|
'sentry.origin': string;
|
|
'sentry.op': string;
|
|
'sentry.source': TransactionSource;
|
|
'sentry.sample_rate': number;
|
|
}> & Record<string, SpanAttributeValue | undefined>;
|
|
/** This type is aligned with the OpenTelemetry TimeInput type. */
|
|
export type SpanTimeInput = HrTime | number | Date;
|
|
/** A JSON representation of a span. */
|
|
export interface SpanJSON {
|
|
data: SpanAttributes;
|
|
description?: string;
|
|
op?: string;
|
|
parent_span_id?: string;
|
|
span_id: string;
|
|
start_timestamp: number;
|
|
status?: string;
|
|
timestamp?: number;
|
|
trace_id: string;
|
|
origin?: SpanOrigin;
|
|
profile_id?: string;
|
|
exclusive_time?: number;
|
|
measurements?: Measurements;
|
|
is_segment?: boolean;
|
|
segment_id?: string;
|
|
links?: SpanLinkJSON[];
|
|
}
|
|
type TraceFlagNone = 0;
|
|
type TraceFlagSampled = 1;
|
|
export type TraceFlag = TraceFlagNone | TraceFlagSampled;
|
|
export interface TraceState {
|
|
/**
|
|
* Create a new TraceState which inherits from this TraceState and has the
|
|
* given key set.
|
|
* The new entry will always be added in the front of the list of states.
|
|
*
|
|
* @param key key of the TraceState entry.
|
|
* @param value value of the TraceState entry.
|
|
*/
|
|
set(key: string, value: string): TraceState;
|
|
/**
|
|
* Return a new TraceState which inherits from this TraceState but does not
|
|
* contain the given key.
|
|
*
|
|
* @param key the key for the TraceState entry to be removed.
|
|
*/
|
|
unset(key: string): TraceState;
|
|
/**
|
|
* Returns the value to which the specified key is mapped, or `undefined` if
|
|
* this map contains no mapping for the key.
|
|
*
|
|
* @param key with which the specified value is to be associated.
|
|
* @returns the value to which the specified key is mapped, or `undefined` if
|
|
* this map contains no mapping for the key.
|
|
*/
|
|
get(key: string): string | undefined;
|
|
/**
|
|
* Serializes the TraceState to a `list` as defined below. The `list` is a
|
|
* series of `list-members` separated by commas `,`, and a list-member is a
|
|
* key/value pair separated by an equals sign `=`. Spaces and horizontal tabs
|
|
* surrounding `list-members` are ignored. There can be a maximum of 32
|
|
* `list-members` in a `list`.
|
|
*
|
|
* @returns the serialized string.
|
|
*/
|
|
serialize(): string;
|
|
}
|
|
export interface SpanContextData {
|
|
/**
|
|
* The ID of the trace that this span belongs to. It is worldwide unique
|
|
* with practically sufficient probability by being made as 16 randomly
|
|
* generated bytes, encoded as a 32 lowercase hex characters corresponding to
|
|
* 128 bits.
|
|
*/
|
|
traceId: string;
|
|
/**
|
|
* The ID of the Span. It is globally unique with practically sufficient
|
|
* probability by being made as 8 randomly generated bytes, encoded as a 16
|
|
* lowercase hex characters corresponding to 64 bits.
|
|
*/
|
|
spanId: string;
|
|
/**
|
|
* Only true if the SentrySpanArguments was propagated from a remote parent.
|
|
*/
|
|
isRemote?: boolean | undefined;
|
|
/**
|
|
* Trace flags to propagate.
|
|
*
|
|
* It is represented as 1 byte (bitmap). Bit to represent whether trace is
|
|
* sampled or not. When set, the least significant bit documents that the
|
|
* caller may have recorded trace data. A caller who does not record trace
|
|
* data out-of-band leaves this flag unset.
|
|
*/
|
|
traceFlags: TraceFlag | number;
|
|
/** In OpenTelemetry, this can be used to store trace state, which are basically key-value pairs. */
|
|
traceState?: TraceState | undefined;
|
|
}
|
|
/**
|
|
* Interface holding all properties that can be set on a Span on creation.
|
|
* This is only used for the legacy span/transaction creation and will go away in v8.
|
|
*/
|
|
export interface SentrySpanArguments {
|
|
/**
|
|
* Human-readable identifier for the span.
|
|
*/
|
|
name?: string | undefined;
|
|
/**
|
|
* Operation of the Span.
|
|
*/
|
|
op?: string | undefined;
|
|
/**
|
|
* Parent Span ID
|
|
*/
|
|
parentSpanId?: string | undefined;
|
|
/**
|
|
* Was this span chosen to be sent as part of the sample?
|
|
*/
|
|
sampled?: boolean | undefined;
|
|
/**
|
|
* Span ID
|
|
*/
|
|
spanId?: string | undefined;
|
|
/**
|
|
* Trace ID
|
|
*/
|
|
traceId?: string | undefined;
|
|
/**
|
|
* Attributes of the Span.
|
|
*/
|
|
attributes?: SpanAttributes;
|
|
/**
|
|
* Timestamp in seconds (epoch time) indicating when the span started.
|
|
*/
|
|
startTimestamp?: number | undefined;
|
|
/**
|
|
* Timestamp in seconds (epoch time) indicating when the span ended.
|
|
*/
|
|
endTimestamp?: number | undefined;
|
|
/**
|
|
* Links to associate with the new span. Setting links here is preferred over addLink()
|
|
* as certain context information is only available during span creation.
|
|
*/
|
|
links?: SpanLink[];
|
|
/**
|
|
* Set to `true` if this span should be sent as a standalone segment span
|
|
* as opposed to a transaction.
|
|
*
|
|
* @experimental this option is currently experimental and should only be
|
|
* used within SDK code. It might be removed or changed in the future.
|
|
*/
|
|
isStandalone?: boolean | undefined;
|
|
}
|
|
/**
|
|
* A generic Span which holds trace data.
|
|
*/
|
|
export interface Span {
|
|
/**
|
|
* Get context data for this span.
|
|
* This includes the spanId & the traceId.
|
|
*/
|
|
spanContext(): SpanContextData;
|
|
/**
|
|
* End the current span.
|
|
*/
|
|
end(endTimestamp?: SpanTimeInput): void;
|
|
/**
|
|
* Set a single attribute on the span.
|
|
* Set it to `undefined` to remove the attribute.
|
|
*/
|
|
setAttribute(key: string, value: SpanAttributeValue | undefined): this;
|
|
/**
|
|
* Set multiple attributes on the span.
|
|
* Any attribute set to `undefined` will be removed.
|
|
*/
|
|
setAttributes(attributes: SpanAttributes): this;
|
|
/**
|
|
* Sets the status attribute on the current span.
|
|
*/
|
|
setStatus(status: SpanStatus): this;
|
|
/**
|
|
* Update the name of the span.
|
|
*
|
|
* **Important:** You most likely want to use `Sentry.updateSpanName(span, name)` instead!
|
|
*
|
|
* This method will update the current span name but cannot guarantee that the new name will be
|
|
* the final name of the span. Instrumentation might still overwrite the name with an automatically
|
|
* computed name, for example in `http.server` or `db` spans.
|
|
*
|
|
* You can ensure that your name is kept and not overwritten by calling `Sentry.updateSpanName(span, name)`
|
|
*
|
|
* @param name the new name of the span
|
|
*/
|
|
updateName(name: string): this;
|
|
/**
|
|
* If this is span is actually recording data.
|
|
* This will return false if tracing is disabled, this span was not sampled or if the span is already finished.
|
|
*/
|
|
isRecording(): boolean;
|
|
/**
|
|
* Adds an event to the Span.
|
|
*/
|
|
addEvent(name: string, attributesOrStartTime?: SpanAttributes | SpanTimeInput, startTime?: SpanTimeInput): this;
|
|
/**
|
|
* Associates this span with a related span. Links can reference spans from the same or different trace
|
|
* and are typically used for batch operations, cross-trace scenarios, or scatter/gather patterns.
|
|
*
|
|
* Prefer setting links directly when starting a span (e.g. `Sentry.startSpan()`) as some context information is only available during span creation.
|
|
* @param link - The link containing the context of the span to link to and optional attributes
|
|
*/
|
|
addLink(link: SpanLink): this;
|
|
/**
|
|
* Associates this span with multiple related spans. See {@link addLink} for more details.
|
|
*
|
|
* Prefer setting links directly when starting a span (e.g. `Sentry.startSpan()`) as some context information is only available during span creation.
|
|
* @param links - Array of links to associate with this span
|
|
*/
|
|
addLinks(links: SpanLink[]): this;
|
|
/**
|
|
* NOT USED IN SENTRY, only added for compliance with OTEL Span interface
|
|
*/
|
|
recordException(exception: unknown, time?: number): void;
|
|
}
|
|
export {};
|
|
//# sourceMappingURL=span.d.ts.map |