1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157
|
/*
* Copyright The OpenTelemetry Authors
* SPDX-License-Identifier: Apache-2.0
*/
/*
* DO NOT EDIT, this is an Auto-generated file from:
* buildscripts/semantic-convention/templates/registry/semantic_metrics-h.j2
*/
#pragma once
#include "opentelemetry/common/macros.h"
#include "opentelemetry/metrics/meter.h"
#include "opentelemetry/version.h"
OPENTELEMETRY_BEGIN_NAMESPACE
namespace semconv
{
namespace gen_ai
{
/**
* GenAI operation duration
* <p>
* histogram
*/
static constexpr const char *kMetricGenAiClientOperationDuration =
"gen_ai.client.operation.duration";
static constexpr const char *descrMetricGenAiClientOperationDuration = "GenAI operation duration";
static constexpr const char *unitMetricGenAiClientOperationDuration = "s";
static inline nostd::unique_ptr<metrics::Histogram<uint64_t>>
CreateSyncInt64MetricGenAiClientOperationDuration(metrics::Meter *meter)
{
return meter->CreateUInt64Histogram(kMetricGenAiClientOperationDuration,
descrMetricGenAiClientOperationDuration,
unitMetricGenAiClientOperationDuration);
}
static inline nostd::unique_ptr<metrics::Histogram<double>>
CreateSyncDoubleMetricGenAiClientOperationDuration(metrics::Meter *meter)
{
return meter->CreateDoubleHistogram(kMetricGenAiClientOperationDuration,
descrMetricGenAiClientOperationDuration,
unitMetricGenAiClientOperationDuration);
}
/**
* Measures number of input and output tokens used
* <p>
* histogram
*/
static constexpr const char *kMetricGenAiClientTokenUsage = "gen_ai.client.token.usage";
static constexpr const char *descrMetricGenAiClientTokenUsage =
"Measures number of input and output tokens used";
static constexpr const char *unitMetricGenAiClientTokenUsage = "{token}";
static inline nostd::unique_ptr<metrics::Histogram<uint64_t>>
CreateSyncInt64MetricGenAiClientTokenUsage(metrics::Meter *meter)
{
return meter->CreateUInt64Histogram(kMetricGenAiClientTokenUsage,
descrMetricGenAiClientTokenUsage,
unitMetricGenAiClientTokenUsage);
}
static inline nostd::unique_ptr<metrics::Histogram<double>>
CreateSyncDoubleMetricGenAiClientTokenUsage(metrics::Meter *meter)
{
return meter->CreateDoubleHistogram(kMetricGenAiClientTokenUsage,
descrMetricGenAiClientTokenUsage,
unitMetricGenAiClientTokenUsage);
}
/**
* Generative AI server request duration such as time-to-last byte or last output token
* <p>
* histogram
*/
static constexpr const char *kMetricGenAiServerRequestDuration = "gen_ai.server.request.duration";
static constexpr const char *descrMetricGenAiServerRequestDuration =
"Generative AI server request duration such as time-to-last byte or last output token";
static constexpr const char *unitMetricGenAiServerRequestDuration = "s";
static inline nostd::unique_ptr<metrics::Histogram<uint64_t>>
CreateSyncInt64MetricGenAiServerRequestDuration(metrics::Meter *meter)
{
return meter->CreateUInt64Histogram(kMetricGenAiServerRequestDuration,
descrMetricGenAiServerRequestDuration,
unitMetricGenAiServerRequestDuration);
}
static inline nostd::unique_ptr<metrics::Histogram<double>>
CreateSyncDoubleMetricGenAiServerRequestDuration(metrics::Meter *meter)
{
return meter->CreateDoubleHistogram(kMetricGenAiServerRequestDuration,
descrMetricGenAiServerRequestDuration,
unitMetricGenAiServerRequestDuration);
}
/**
* Time per output token generated after the first token for successful responses
* <p>
* histogram
*/
static constexpr const char *kMetricGenAiServerTimePerOutputToken =
"gen_ai.server.time_per_output_token";
static constexpr const char *descrMetricGenAiServerTimePerOutputToken =
"Time per output token generated after the first token for successful responses";
static constexpr const char *unitMetricGenAiServerTimePerOutputToken = "s";
static inline nostd::unique_ptr<metrics::Histogram<uint64_t>>
CreateSyncInt64MetricGenAiServerTimePerOutputToken(metrics::Meter *meter)
{
return meter->CreateUInt64Histogram(kMetricGenAiServerTimePerOutputToken,
descrMetricGenAiServerTimePerOutputToken,
unitMetricGenAiServerTimePerOutputToken);
}
static inline nostd::unique_ptr<metrics::Histogram<double>>
CreateSyncDoubleMetricGenAiServerTimePerOutputToken(metrics::Meter *meter)
{
return meter->CreateDoubleHistogram(kMetricGenAiServerTimePerOutputToken,
descrMetricGenAiServerTimePerOutputToken,
unitMetricGenAiServerTimePerOutputToken);
}
/**
* Time to generate first token for successful responses
* <p>
* histogram
*/
static constexpr const char *kMetricGenAiServerTimeToFirstToken =
"gen_ai.server.time_to_first_token";
static constexpr const char *descrMetricGenAiServerTimeToFirstToken =
"Time to generate first token for successful responses";
static constexpr const char *unitMetricGenAiServerTimeToFirstToken = "s";
static inline nostd::unique_ptr<metrics::Histogram<uint64_t>>
CreateSyncInt64MetricGenAiServerTimeToFirstToken(metrics::Meter *meter)
{
return meter->CreateUInt64Histogram(kMetricGenAiServerTimeToFirstToken,
descrMetricGenAiServerTimeToFirstToken,
unitMetricGenAiServerTimeToFirstToken);
}
static inline nostd::unique_ptr<metrics::Histogram<double>>
CreateSyncDoubleMetricGenAiServerTimeToFirstToken(metrics::Meter *meter)
{
return meter->CreateDoubleHistogram(kMetricGenAiServerTimeToFirstToken,
descrMetricGenAiServerTimeToFirstToken,
unitMetricGenAiServerTimeToFirstToken);
}
} // namespace gen_ai
} // namespace semconv
OPENTELEMETRY_END_NAMESPACE
|