@ancplua/qyl-api-schema 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +89 -0
- package/VERSIONING.md +74 -0
- package/api/routes.tsp +1052 -0
- package/api/streaming.tsp +335 -0
- package/common/errors.tsp +206 -0
- package/common/pagination.tsp +254 -0
- package/common/types.tsp +345 -0
- package/generated/README.md +26 -0
- package/generated/otel-keys.gen.tsp +1648 -0
- package/index.tsp +55 -0
- package/intelligence/causal-rules.tsp +34 -0
- package/intelligence/diagnostic-patterns.tsp +54 -0
- package/intelligence/investigation-strategies.tsp +37 -0
- package/intelligence/main.tsp +19 -0
- package/intelligence/seed/patterns.tsp +172 -0
- package/intelligence/seed/rules.tsp +44 -0
- package/intelligence/seed/strategies.tsp +56 -0
- package/intelligence/signals.tsp +60 -0
- package/models/agent/agent-run.tsp +154 -0
- package/models/agent/tool-call.tsp +122 -0
- package/models/agent/workflow-checkpoint.tsp +50 -0
- package/models/agent/workflow-execution.tsp +136 -0
- package/models/alerting.tsp +436 -0
- package/models/configurator.tsp +433 -0
- package/models/control-graph.tsp +197 -0
- package/models/db.tsp +810 -0
- package/models/deployment.tsp +365 -0
- package/models/error.tsp +433 -0
- package/models/genai.tsp +1368 -0
- package/models/http.tsp +600 -0
- package/models/identity.tsp +213 -0
- package/models/issues.tsp +484 -0
- package/models/log.tsp +140 -0
- package/models/messaging.tsp +304 -0
- package/models/otel-config.tsp +455 -0
- package/models/retention.tsp +240 -0
- package/models/rpc.tsp +309 -0
- package/models/search.tsp +243 -0
- package/models/session.tsp +274 -0
- package/models/system.tsp +400 -0
- package/models/test.tsp +346 -0
- package/models/triage.tsp +113 -0
- package/models/workflow.tsp +396 -0
- package/models/workspace.tsp +435 -0
- package/otel/enums.tsp +392 -0
- package/otel/logs.tsp +135 -0
- package/otel/metrics.tsp +358 -0
- package/otel/otel-conventions.tsp +14 -0
- package/otel/profiles.tsp +335 -0
- package/otel/resource.tsp +257 -0
- package/otel/span.tsp +307 -0
- package/package.json +88 -0
- package/tspconfig.yaml +49 -0
package/models/db.tsp
ADDED
|
@@ -0,0 +1,810 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// ANcpLua v2.0 - Database Semantic Conventions (OTel v1.40)
|
|
3
|
+
// =============================================================================
|
|
4
|
+
// Database telemetry attributes with 45+ DBMS types.
|
|
5
|
+
// =============================================================================
|
|
6
|
+
|
|
7
|
+
import "@typespec/versioning";
|
|
8
|
+
import "../common/types.tsp";
|
|
9
|
+
|
|
10
|
+
using TypeSpec.Versioning;
|
|
11
|
+
using Qyl.Api.Contracts.Common;
|
|
12
|
+
|
|
13
|
+
@versioned(DbVersions)
|
|
14
|
+
namespace Qyl.Api.Contracts.Domains.Data.Db;
|
|
15
|
+
|
|
16
|
+
// =============================================================================
|
|
17
|
+
// Version History
|
|
18
|
+
// =============================================================================
|
|
19
|
+
|
|
20
|
+
@doc("Database semantic convention versions")
|
|
21
|
+
enum DbVersions {
|
|
22
|
+
@doc("Legacy DB semconv")
|
|
23
|
+
v1_20: "1.20.0",
|
|
24
|
+
|
|
25
|
+
@doc("Stable DB semconv with namespace")
|
|
26
|
+
v1_24: "1.24.0",
|
|
27
|
+
|
|
28
|
+
@doc("DB semconv v1.38")
|
|
29
|
+
v1_38: "1.38.0",
|
|
30
|
+
|
|
31
|
+
@doc("Current DB semconv")
|
|
32
|
+
v1_39: "1.39.0",
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// =============================================================================
|
|
36
|
+
// Database Span Attributes (Complete OTel v1.40)
|
|
37
|
+
// =============================================================================
|
|
38
|
+
|
|
39
|
+
@doc("Database span attributes following OTel Semantic Conventions v1.40")
|
|
40
|
+
model DbAttributes {
|
|
41
|
+
// ---------------------------------------------------------------------------
|
|
42
|
+
// System & Connection
|
|
43
|
+
// ---------------------------------------------------------------------------
|
|
44
|
+
|
|
45
|
+
@doc("Database management system identifier")
|
|
46
|
+
@encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Db.SystemName)
|
|
47
|
+
systemName: DbSystem;
|
|
48
|
+
|
|
49
|
+
@doc("Database namespace (database name, schema, etc.)")
|
|
50
|
+
@encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Db.Namespace)
|
|
51
|
+
`namespace`?: string;
|
|
52
|
+
|
|
53
|
+
@doc("Database operation name (query, insert, delete, etc.)")
|
|
54
|
+
@encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Db.OperationName)
|
|
55
|
+
operationName?: DbOperationName;
|
|
56
|
+
|
|
57
|
+
@doc("Batch size (number of statements in batch)")
|
|
58
|
+
@encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Db.OperationBatchSize)
|
|
59
|
+
batchSize?: int32;
|
|
60
|
+
|
|
61
|
+
// ---------------------------------------------------------------------------
|
|
62
|
+
// Query Details
|
|
63
|
+
// ---------------------------------------------------------------------------
|
|
64
|
+
|
|
65
|
+
@doc("Database statement (query text, may be sanitized)")
|
|
66
|
+
@encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Db.QueryText)
|
|
67
|
+
queryText?: string;
|
|
68
|
+
|
|
69
|
+
@doc("Parameterized query template")
|
|
70
|
+
@encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Db.QuerySummary)
|
|
71
|
+
querySummary?: string;
|
|
72
|
+
|
|
73
|
+
@doc("Query parameters (for prepared statements). Keys map to db.query.parameter.<key>")
|
|
74
|
+
@encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Db.QueryParameter)
|
|
75
|
+
queryParameters?: Record<string>;
|
|
76
|
+
|
|
77
|
+
// ---------------------------------------------------------------------------
|
|
78
|
+
// Collection/Table Information
|
|
79
|
+
// ---------------------------------------------------------------------------
|
|
80
|
+
|
|
81
|
+
@doc("Table name")
|
|
82
|
+
@encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Db.CollectionName)
|
|
83
|
+
collectionName?: string;
|
|
84
|
+
|
|
85
|
+
// ---------------------------------------------------------------------------
|
|
86
|
+
// Response Metrics
|
|
87
|
+
// ---------------------------------------------------------------------------
|
|
88
|
+
|
|
89
|
+
@doc("Number of rows affected/returned")
|
|
90
|
+
@encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Db.ResponseReturnedRows)
|
|
91
|
+
returnedRows?: int64;
|
|
92
|
+
|
|
93
|
+
@doc("Status code from database")
|
|
94
|
+
@encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Db.ResponseStatusCode)
|
|
95
|
+
responseStatusCode?: string;
|
|
96
|
+
|
|
97
|
+
// ---------------------------------------------------------------------------
|
|
98
|
+
// Server Information
|
|
99
|
+
// ---------------------------------------------------------------------------
|
|
100
|
+
|
|
101
|
+
@doc("Database server address")
|
|
102
|
+
@encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Server.Address)
|
|
103
|
+
serverAddress?: string;
|
|
104
|
+
|
|
105
|
+
@doc("Database server port")
|
|
106
|
+
@encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Server.Port)
|
|
107
|
+
serverPort?: Port;
|
|
108
|
+
|
|
109
|
+
// ---------------------------------------------------------------------------
|
|
110
|
+
// Connection Pool
|
|
111
|
+
// ---------------------------------------------------------------------------
|
|
112
|
+
|
|
113
|
+
@doc("Connection pool name")
|
|
114
|
+
@encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Db.ClientConnectionPoolName)
|
|
115
|
+
connectionPoolName?: string;
|
|
116
|
+
|
|
117
|
+
@doc("Connection state")
|
|
118
|
+
@encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Db.ClientConnectionState)
|
|
119
|
+
connectionState?: DbConnectionState;
|
|
120
|
+
|
|
121
|
+
// ---------------------------------------------------------------------------
|
|
122
|
+
// Deprecated Attributes (for migration)
|
|
123
|
+
// ---------------------------------------------------------------------------
|
|
124
|
+
|
|
125
|
+
@doc("Database name (deprecated - use db.namespace)")
|
|
126
|
+
@encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Db.Name)
|
|
127
|
+
@removed(DbVersions.v1_24)
|
|
128
|
+
dbName?: string;
|
|
129
|
+
|
|
130
|
+
@doc("Database statement (deprecated - use db.query.text)")
|
|
131
|
+
@encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Db.Statement)
|
|
132
|
+
@removed(DbVersions.v1_24)
|
|
133
|
+
statement?: string;
|
|
134
|
+
|
|
135
|
+
@doc("Database operation (deprecated - use db.operation.name)")
|
|
136
|
+
@encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Db.Operation)
|
|
137
|
+
@removed(DbVersions.v1_24)
|
|
138
|
+
operation?: string;
|
|
139
|
+
|
|
140
|
+
@doc("Database user (deprecated)")
|
|
141
|
+
@encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Db.User)
|
|
142
|
+
@removed(DbVersions.v1_24)
|
|
143
|
+
user?: string;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
// =============================================================================
|
|
147
|
+
// Database System Enumeration (45+ DBMS Types)
|
|
148
|
+
// =============================================================================
|
|
149
|
+
|
|
150
|
+
@doc("Database management system identifiers")
|
|
151
|
+
enum DbSystem {
|
|
152
|
+
// ---------------------------------------------------------------------------
|
|
153
|
+
// Relational Databases
|
|
154
|
+
// ---------------------------------------------------------------------------
|
|
155
|
+
|
|
156
|
+
@doc("PostgreSQL")
|
|
157
|
+
postgresql: "postgresql",
|
|
158
|
+
|
|
159
|
+
@doc("MySQL / MariaDB")
|
|
160
|
+
mysql: "mysql",
|
|
161
|
+
|
|
162
|
+
@doc("MariaDB")
|
|
163
|
+
mariadb: "mariadb",
|
|
164
|
+
|
|
165
|
+
@doc("Microsoft SQL Server")
|
|
166
|
+
mssql: "mssql",
|
|
167
|
+
|
|
168
|
+
@doc("Oracle Database")
|
|
169
|
+
oracle: "oracle",
|
|
170
|
+
|
|
171
|
+
@doc("IBM DB2")
|
|
172
|
+
db2: "db2",
|
|
173
|
+
|
|
174
|
+
@doc("SQLite")
|
|
175
|
+
sqlite: "sqlite",
|
|
176
|
+
|
|
177
|
+
@doc("SAP HANA")
|
|
178
|
+
hana: "hana",
|
|
179
|
+
|
|
180
|
+
@doc("SAP MaxDB")
|
|
181
|
+
maxdb: "maxdb",
|
|
182
|
+
|
|
183
|
+
@doc("SAP SQL Anywhere")
|
|
184
|
+
sqlanywhere: "sqlanywhere",
|
|
185
|
+
|
|
186
|
+
@doc("Teradata")
|
|
187
|
+
teradata: "teradata",
|
|
188
|
+
|
|
189
|
+
@doc("Sybase")
|
|
190
|
+
sybase: "sybase",
|
|
191
|
+
|
|
192
|
+
@doc("Informix")
|
|
193
|
+
informix: "informix",
|
|
194
|
+
|
|
195
|
+
@doc("Firebird")
|
|
196
|
+
firebird: "firebird",
|
|
197
|
+
|
|
198
|
+
@doc("Interbase")
|
|
199
|
+
interbase: "interbase",
|
|
200
|
+
|
|
201
|
+
@doc("H2 Database")
|
|
202
|
+
h2: "h2",
|
|
203
|
+
|
|
204
|
+
@doc("HSQLDB")
|
|
205
|
+
hsqldb: "hsqldb",
|
|
206
|
+
|
|
207
|
+
@doc("Apache Derby")
|
|
208
|
+
derby: "derby",
|
|
209
|
+
|
|
210
|
+
@doc("CockroachDB")
|
|
211
|
+
cockroachdb: "cockroachdb",
|
|
212
|
+
|
|
213
|
+
@doc("TiDB")
|
|
214
|
+
tidb: "tidb",
|
|
215
|
+
|
|
216
|
+
@doc("YugabyteDB")
|
|
217
|
+
yugabyte: "yugabyte",
|
|
218
|
+
|
|
219
|
+
@doc("Vitess")
|
|
220
|
+
vitess: "vitess",
|
|
221
|
+
|
|
222
|
+
@doc("ClickHouse")
|
|
223
|
+
clickhouse: "clickhouse",
|
|
224
|
+
|
|
225
|
+
@doc("Snowflake")
|
|
226
|
+
snowflake: "snowflake",
|
|
227
|
+
|
|
228
|
+
@doc("Amazon Redshift")
|
|
229
|
+
redshift: "redshift",
|
|
230
|
+
|
|
231
|
+
@doc("Google BigQuery")
|
|
232
|
+
bigquery: "bigquery",
|
|
233
|
+
|
|
234
|
+
@doc("Azure Synapse")
|
|
235
|
+
synapse: "synapse",
|
|
236
|
+
|
|
237
|
+
@doc("Databricks")
|
|
238
|
+
databricks: "databricks",
|
|
239
|
+
|
|
240
|
+
@doc("Presto")
|
|
241
|
+
presto: "presto",
|
|
242
|
+
|
|
243
|
+
@doc("Trino")
|
|
244
|
+
trino: "trino",
|
|
245
|
+
|
|
246
|
+
@doc("Apache Hive")
|
|
247
|
+
hive: "hive",
|
|
248
|
+
|
|
249
|
+
@doc("Apache Spark SQL")
|
|
250
|
+
sparksql: "sparksql",
|
|
251
|
+
|
|
252
|
+
@doc("Apache Impala")
|
|
253
|
+
impala: "impala",
|
|
254
|
+
|
|
255
|
+
@doc("Apache Drill")
|
|
256
|
+
drill: "drill",
|
|
257
|
+
|
|
258
|
+
@doc("DuckDB")
|
|
259
|
+
duckdb: "duckdb",
|
|
260
|
+
|
|
261
|
+
@doc("Vertica")
|
|
262
|
+
vertica: "vertica",
|
|
263
|
+
|
|
264
|
+
@doc("Greenplum")
|
|
265
|
+
greenplum: "greenplum",
|
|
266
|
+
|
|
267
|
+
@doc("Netezza")
|
|
268
|
+
netezza: "netezza",
|
|
269
|
+
|
|
270
|
+
// ---------------------------------------------------------------------------
|
|
271
|
+
// NoSQL Document Databases
|
|
272
|
+
// ---------------------------------------------------------------------------
|
|
273
|
+
|
|
274
|
+
@doc("MongoDB")
|
|
275
|
+
mongodb: "mongodb",
|
|
276
|
+
|
|
277
|
+
@doc("Couchbase")
|
|
278
|
+
couchbase: "couchbase",
|
|
279
|
+
|
|
280
|
+
@doc("CouchDB")
|
|
281
|
+
couchdb: "couchdb",
|
|
282
|
+
|
|
283
|
+
@doc("Amazon DocumentDB")
|
|
284
|
+
documentdb: "documentdb",
|
|
285
|
+
|
|
286
|
+
@doc("Azure Cosmos DB")
|
|
287
|
+
cosmosdb: "cosmosdb",
|
|
288
|
+
|
|
289
|
+
@doc("Google Cloud Firestore")
|
|
290
|
+
firestore: "firestore",
|
|
291
|
+
|
|
292
|
+
@doc("RavenDB")
|
|
293
|
+
ravendb: "ravendb",
|
|
294
|
+
|
|
295
|
+
@doc("ArangoDB")
|
|
296
|
+
arangodb: "arangodb",
|
|
297
|
+
|
|
298
|
+
// ---------------------------------------------------------------------------
|
|
299
|
+
// Key-Value Stores
|
|
300
|
+
// ---------------------------------------------------------------------------
|
|
301
|
+
|
|
302
|
+
@doc("Redis")
|
|
303
|
+
redis: "redis",
|
|
304
|
+
|
|
305
|
+
@doc("Valkey")
|
|
306
|
+
valkey: "valkey",
|
|
307
|
+
|
|
308
|
+
@doc("KeyDB")
|
|
309
|
+
keydb: "keydb",
|
|
310
|
+
|
|
311
|
+
@doc("Memcached")
|
|
312
|
+
memcached: "memcached",
|
|
313
|
+
|
|
314
|
+
@doc("Amazon DynamoDB")
|
|
315
|
+
dynamodb: "dynamodb",
|
|
316
|
+
|
|
317
|
+
@doc("Azure Table Storage")
|
|
318
|
+
azuretable: "azuretable",
|
|
319
|
+
|
|
320
|
+
@doc("Hazelcast")
|
|
321
|
+
hazelcast: "hazelcast",
|
|
322
|
+
|
|
323
|
+
@doc("etcd")
|
|
324
|
+
etcd: "etcd",
|
|
325
|
+
|
|
326
|
+
@doc("Apache Ignite")
|
|
327
|
+
ignite: "ignite",
|
|
328
|
+
|
|
329
|
+
@doc("RocksDB")
|
|
330
|
+
rocksdb: "rocksdb",
|
|
331
|
+
|
|
332
|
+
@doc("LevelDB")
|
|
333
|
+
leveldb: "leveldb",
|
|
334
|
+
|
|
335
|
+
@doc("Berkeley DB")
|
|
336
|
+
berkeleydb: "berkeleydb",
|
|
337
|
+
|
|
338
|
+
// ---------------------------------------------------------------------------
|
|
339
|
+
// Wide-Column Stores
|
|
340
|
+
// ---------------------------------------------------------------------------
|
|
341
|
+
|
|
342
|
+
@doc("Apache Cassandra")
|
|
343
|
+
cassandra: "cassandra",
|
|
344
|
+
|
|
345
|
+
@doc("ScyllaDB")
|
|
346
|
+
scylla: "scylla",
|
|
347
|
+
|
|
348
|
+
@doc("Apache HBase")
|
|
349
|
+
hbase: "hbase",
|
|
350
|
+
|
|
351
|
+
@doc("Google Cloud Bigtable")
|
|
352
|
+
bigtable: "bigtable",
|
|
353
|
+
|
|
354
|
+
// ---------------------------------------------------------------------------
|
|
355
|
+
// Graph Databases
|
|
356
|
+
// ---------------------------------------------------------------------------
|
|
357
|
+
|
|
358
|
+
@doc("Neo4j")
|
|
359
|
+
neo4j: "neo4j",
|
|
360
|
+
|
|
361
|
+
@doc("Amazon Neptune")
|
|
362
|
+
neptune: "neptune",
|
|
363
|
+
|
|
364
|
+
@doc("ArangoDB (graph mode)")
|
|
365
|
+
arangodbGraph: "arangodb_graph",
|
|
366
|
+
|
|
367
|
+
@doc("JanusGraph")
|
|
368
|
+
janusgraph: "janusgraph",
|
|
369
|
+
|
|
370
|
+
@doc("TigerGraph")
|
|
371
|
+
tigergraph: "tigergraph",
|
|
372
|
+
|
|
373
|
+
@doc("Dgraph")
|
|
374
|
+
dgraph: "dgraph",
|
|
375
|
+
|
|
376
|
+
// ---------------------------------------------------------------------------
|
|
377
|
+
// Time-Series Databases
|
|
378
|
+
// ---------------------------------------------------------------------------
|
|
379
|
+
|
|
380
|
+
@doc("InfluxDB")
|
|
381
|
+
influxdb: "influxdb",
|
|
382
|
+
|
|
383
|
+
@doc("TimescaleDB")
|
|
384
|
+
timescaledb: "timescaledb",
|
|
385
|
+
|
|
386
|
+
@doc("Prometheus")
|
|
387
|
+
prometheus: "prometheus",
|
|
388
|
+
|
|
389
|
+
@doc("QuestDB")
|
|
390
|
+
questdb: "questdb",
|
|
391
|
+
|
|
392
|
+
@doc("Amazon Timestream")
|
|
393
|
+
timestream: "timestream",
|
|
394
|
+
|
|
395
|
+
@doc("Apache Druid")
|
|
396
|
+
druid: "druid",
|
|
397
|
+
|
|
398
|
+
@doc("VictoriaMetrics")
|
|
399
|
+
victoriametrics: "victoriametrics",
|
|
400
|
+
|
|
401
|
+
// ---------------------------------------------------------------------------
|
|
402
|
+
// Search Engines
|
|
403
|
+
// ---------------------------------------------------------------------------
|
|
404
|
+
|
|
405
|
+
@doc("Elasticsearch")
|
|
406
|
+
elasticsearch: "elasticsearch",
|
|
407
|
+
|
|
408
|
+
@doc("OpenSearch")
|
|
409
|
+
opensearch: "opensearch",
|
|
410
|
+
|
|
411
|
+
@doc("Apache Solr")
|
|
412
|
+
solr: "solr",
|
|
413
|
+
|
|
414
|
+
@doc("Splunk")
|
|
415
|
+
splunk: "splunk",
|
|
416
|
+
|
|
417
|
+
@doc("Meilisearch")
|
|
418
|
+
meilisearch: "meilisearch",
|
|
419
|
+
|
|
420
|
+
@doc("Typesense")
|
|
421
|
+
typesense: "typesense",
|
|
422
|
+
|
|
423
|
+
@doc("Algolia")
|
|
424
|
+
algolia: "algolia",
|
|
425
|
+
|
|
426
|
+
// ---------------------------------------------------------------------------
|
|
427
|
+
// Vector Databases
|
|
428
|
+
// ---------------------------------------------------------------------------
|
|
429
|
+
|
|
430
|
+
@doc("Pinecone")
|
|
431
|
+
pinecone: "pinecone",
|
|
432
|
+
|
|
433
|
+
@doc("Milvus")
|
|
434
|
+
milvus: "milvus",
|
|
435
|
+
|
|
436
|
+
@doc("Weaviate")
|
|
437
|
+
weaviate: "weaviate",
|
|
438
|
+
|
|
439
|
+
@doc("Qdrant")
|
|
440
|
+
qdrant: "qdrant",
|
|
441
|
+
|
|
442
|
+
@doc("Chroma")
|
|
443
|
+
chroma: "chroma",
|
|
444
|
+
|
|
445
|
+
@doc("pgvector (PostgreSQL extension)")
|
|
446
|
+
pgvector: "pgvector",
|
|
447
|
+
|
|
448
|
+
// ---------------------------------------------------------------------------
|
|
449
|
+
// Embedded & File-Based
|
|
450
|
+
// ---------------------------------------------------------------------------
|
|
451
|
+
|
|
452
|
+
@doc("Microsoft Access")
|
|
453
|
+
msaccess: "msaccess",
|
|
454
|
+
|
|
455
|
+
@doc("FileMaker")
|
|
456
|
+
filemaker: "filemaker",
|
|
457
|
+
|
|
458
|
+
@doc("FoxPro")
|
|
459
|
+
foxpro: "foxpro",
|
|
460
|
+
|
|
461
|
+
@doc("dBase")
|
|
462
|
+
dbase: "dbase",
|
|
463
|
+
|
|
464
|
+
// ---------------------------------------------------------------------------
|
|
465
|
+
// Other
|
|
466
|
+
// ---------------------------------------------------------------------------
|
|
467
|
+
|
|
468
|
+
@doc("ODBC (generic)")
|
|
469
|
+
odbc: "odbc",
|
|
470
|
+
|
|
471
|
+
@doc("JDBC (generic)")
|
|
472
|
+
jdbc: "jdbc",
|
|
473
|
+
|
|
474
|
+
@doc("Other/unknown database system")
|
|
475
|
+
other: "other",
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
// =============================================================================
|
|
479
|
+
// Database Operation Names
|
|
480
|
+
// =============================================================================
|
|
481
|
+
|
|
482
|
+
@doc("Database operation names")
|
|
483
|
+
enum DbOperationName {
|
|
484
|
+
@doc("SELECT query")
|
|
485
|
+
select: "SELECT",
|
|
486
|
+
|
|
487
|
+
@doc("INSERT query")
|
|
488
|
+
insert: "INSERT",
|
|
489
|
+
|
|
490
|
+
@doc("UPDATE query")
|
|
491
|
+
update: "UPDATE",
|
|
492
|
+
|
|
493
|
+
@doc("DELETE query")
|
|
494
|
+
delete: "DELETE",
|
|
495
|
+
|
|
496
|
+
@doc("CREATE operation")
|
|
497
|
+
create: "CREATE",
|
|
498
|
+
|
|
499
|
+
@doc("DROP operation")
|
|
500
|
+
drop: "DROP",
|
|
501
|
+
|
|
502
|
+
@doc("ALTER operation")
|
|
503
|
+
alter: "ALTER",
|
|
504
|
+
|
|
505
|
+
@doc("TRUNCATE operation")
|
|
506
|
+
truncate: "TRUNCATE",
|
|
507
|
+
|
|
508
|
+
@doc("EXECUTE stored procedure")
|
|
509
|
+
execute: "EXECUTE",
|
|
510
|
+
|
|
511
|
+
@doc("CALL stored procedure")
|
|
512
|
+
call: "CALL",
|
|
513
|
+
|
|
514
|
+
@doc("BEGIN transaction")
|
|
515
|
+
begin: "BEGIN",
|
|
516
|
+
|
|
517
|
+
@doc("COMMIT transaction")
|
|
518
|
+
commit: "COMMIT",
|
|
519
|
+
|
|
520
|
+
@doc("ROLLBACK transaction")
|
|
521
|
+
rollback: "ROLLBACK",
|
|
522
|
+
|
|
523
|
+
@doc("SAVEPOINT in transaction")
|
|
524
|
+
savepoint: "SAVEPOINT",
|
|
525
|
+
|
|
526
|
+
// NoSQL Operations
|
|
527
|
+
@doc("Find/query operation")
|
|
528
|
+
find: "find",
|
|
529
|
+
|
|
530
|
+
@doc("Find one operation")
|
|
531
|
+
findOne: "findOne",
|
|
532
|
+
|
|
533
|
+
@doc("Insert one operation")
|
|
534
|
+
insertOne: "insertOne",
|
|
535
|
+
|
|
536
|
+
@doc("Insert many operation")
|
|
537
|
+
insertMany: "insertMany",
|
|
538
|
+
|
|
539
|
+
@doc("Update one operation")
|
|
540
|
+
updateOne: "updateOne",
|
|
541
|
+
|
|
542
|
+
@doc("Update many operation")
|
|
543
|
+
updateMany: "updateMany",
|
|
544
|
+
|
|
545
|
+
@doc("Delete one operation")
|
|
546
|
+
deleteOne: "deleteOne",
|
|
547
|
+
|
|
548
|
+
@doc("Delete many operation")
|
|
549
|
+
deleteMany: "deleteMany",
|
|
550
|
+
|
|
551
|
+
@doc("Aggregate operation")
|
|
552
|
+
aggregate: "aggregate",
|
|
553
|
+
|
|
554
|
+
@doc("Count operation")
|
|
555
|
+
count: "count",
|
|
556
|
+
|
|
557
|
+
@doc("Get operation")
|
|
558
|
+
get: "GET",
|
|
559
|
+
|
|
560
|
+
@doc("Set operation")
|
|
561
|
+
set: "SET",
|
|
562
|
+
|
|
563
|
+
@doc("Delete operation")
|
|
564
|
+
del: "DEL",
|
|
565
|
+
|
|
566
|
+
@doc("Ping operation")
|
|
567
|
+
ping: "PING",
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
// =============================================================================
|
|
571
|
+
// Database Connection States
|
|
572
|
+
// =============================================================================
|
|
573
|
+
|
|
574
|
+
@doc("Database connection states")
|
|
575
|
+
enum DbConnectionState {
|
|
576
|
+
@doc("Connection is idle in pool")
|
|
577
|
+
idle: "idle",
|
|
578
|
+
|
|
579
|
+
@doc("Connection is in use")
|
|
580
|
+
used: "used",
|
|
581
|
+
}
|
|
582
|
+
|
|
583
|
+
// =============================================================================
|
|
584
|
+
// Database Metrics
|
|
585
|
+
// =============================================================================
|
|
586
|
+
|
|
587
|
+
@doc("Database client operation duration metric")
|
|
588
|
+
model DbClientOperationDurationMetric {
|
|
589
|
+
@doc("Metric name")
|
|
590
|
+
name: "db.client.operation.duration";
|
|
591
|
+
|
|
592
|
+
@doc("Metric unit (seconds)")
|
|
593
|
+
unit: "s";
|
|
594
|
+
|
|
595
|
+
@doc("Database system")
|
|
596
|
+
@encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Db.SystemName)
|
|
597
|
+
systemName: DbSystem;
|
|
598
|
+
|
|
599
|
+
@doc("Database namespace")
|
|
600
|
+
@encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Db.Namespace)
|
|
601
|
+
`namespace`?: string;
|
|
602
|
+
|
|
603
|
+
@doc("Operation name")
|
|
604
|
+
@encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Db.OperationName)
|
|
605
|
+
operationName: DbOperationName;
|
|
606
|
+
|
|
607
|
+
@doc("Collection/table name")
|
|
608
|
+
@encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Db.CollectionName)
|
|
609
|
+
collectionName?: string;
|
|
610
|
+
|
|
611
|
+
@doc("Error type if failed")
|
|
612
|
+
@encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Error.Type)
|
|
613
|
+
errorType?: string;
|
|
614
|
+
}
|
|
615
|
+
|
|
616
|
+
@doc("Database connection pool size metric")
|
|
617
|
+
model DbConnectionPoolSizeMetric {
|
|
618
|
+
@doc("Metric name")
|
|
619
|
+
name: "db.client.connection.count";
|
|
620
|
+
|
|
621
|
+
@doc("Metric unit")
|
|
622
|
+
unit: "{connection}";
|
|
623
|
+
|
|
624
|
+
@doc("Database system")
|
|
625
|
+
@encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Db.SystemName)
|
|
626
|
+
systemName: DbSystem;
|
|
627
|
+
|
|
628
|
+
@doc("Pool name")
|
|
629
|
+
@encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Db.ClientConnectionPoolName)
|
|
630
|
+
poolName: string;
|
|
631
|
+
|
|
632
|
+
@doc("Connection state")
|
|
633
|
+
@encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Db.ClientConnectionState)
|
|
634
|
+
state: DbConnectionState;
|
|
635
|
+
}
|
|
636
|
+
|
|
637
|
+
@doc("Database connection create time metric")
|
|
638
|
+
model DbConnectionCreateTimeMetric {
|
|
639
|
+
@doc("Metric name")
|
|
640
|
+
name: "db.client.connection.create_time";
|
|
641
|
+
|
|
642
|
+
@doc("Metric unit (seconds)")
|
|
643
|
+
unit: "s";
|
|
644
|
+
|
|
645
|
+
@doc("Database system")
|
|
646
|
+
@encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Db.SystemName)
|
|
647
|
+
systemName: DbSystem;
|
|
648
|
+
|
|
649
|
+
@doc("Pool name")
|
|
650
|
+
@encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Db.ClientConnectionPoolName)
|
|
651
|
+
poolName: string;
|
|
652
|
+
}
|
|
653
|
+
|
|
654
|
+
@doc("Database connection wait time metric")
|
|
655
|
+
model DbConnectionWaitTimeMetric {
|
|
656
|
+
@doc("Metric name")
|
|
657
|
+
name: "db.client.connection.wait_time";
|
|
658
|
+
|
|
659
|
+
@doc("Metric unit (seconds)")
|
|
660
|
+
unit: "s";
|
|
661
|
+
|
|
662
|
+
@doc("Database system")
|
|
663
|
+
@encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Db.SystemName)
|
|
664
|
+
systemName: DbSystem;
|
|
665
|
+
|
|
666
|
+
@doc("Pool name")
|
|
667
|
+
@encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Db.ClientConnectionPoolName)
|
|
668
|
+
poolName: string;
|
|
669
|
+
}
|
|
670
|
+
|
|
671
|
+
@doc("Database connection use time metric")
|
|
672
|
+
model DbConnectionUseTimeMetric {
|
|
673
|
+
@doc("Metric name")
|
|
674
|
+
name: "db.client.connection.use_time";
|
|
675
|
+
|
|
676
|
+
@doc("Metric unit (seconds)")
|
|
677
|
+
unit: "s";
|
|
678
|
+
|
|
679
|
+
@doc("Database system")
|
|
680
|
+
@encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Db.SystemName)
|
|
681
|
+
systemName: DbSystem;
|
|
682
|
+
|
|
683
|
+
@doc("Pool name")
|
|
684
|
+
@encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Db.ClientConnectionPoolName)
|
|
685
|
+
poolName: string;
|
|
686
|
+
}
|
|
687
|
+
|
|
688
|
+
@doc("Database connection pending requests metric")
|
|
689
|
+
model DbConnectionPendingRequestsMetric {
|
|
690
|
+
@doc("Metric name")
|
|
691
|
+
name: "db.client.connection.pending_requests";
|
|
692
|
+
|
|
693
|
+
@doc("Metric unit")
|
|
694
|
+
unit: "{request}";
|
|
695
|
+
|
|
696
|
+
@doc("Database system")
|
|
697
|
+
@encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Db.SystemName)
|
|
698
|
+
systemName: DbSystem;
|
|
699
|
+
|
|
700
|
+
@doc("Pool name")
|
|
701
|
+
@encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Db.ClientConnectionPoolName)
|
|
702
|
+
poolName: string;
|
|
703
|
+
}
|
|
704
|
+
|
|
705
|
+
@doc("Database connection timeouts metric")
|
|
706
|
+
model DbConnectionTimeoutsMetric {
|
|
707
|
+
@doc("Metric name")
|
|
708
|
+
name: "db.client.connection.timeouts";
|
|
709
|
+
|
|
710
|
+
@doc("Metric unit")
|
|
711
|
+
unit: "{timeout}";
|
|
712
|
+
|
|
713
|
+
@doc("Database system")
|
|
714
|
+
@encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Db.SystemName)
|
|
715
|
+
systemName: DbSystem;
|
|
716
|
+
|
|
717
|
+
@doc("Pool name")
|
|
718
|
+
@encodedName("application/json", ANcpLua.OpenTelemetry.SemanticConventions.Keys.Db.ClientConnectionPoolName)
|
|
719
|
+
poolName: string;
|
|
720
|
+
}
|
|
721
|
+
|
|
722
|
+
// =============================================================================
|
|
723
|
+
// Database Statistics
|
|
724
|
+
// =============================================================================
|
|
725
|
+
|
|
726
|
+
@doc("Aggregated database statistics")
|
|
727
|
+
model DbStats {
|
|
728
|
+
@doc("Total queries")
|
|
729
|
+
@encodedName("application/json", "total_queries")
|
|
730
|
+
totalQueries: Count;
|
|
731
|
+
|
|
732
|
+
@doc("Total query duration in seconds")
|
|
733
|
+
@encodedName("application/json", "total_duration_s")
|
|
734
|
+
totalDurationS: float64;
|
|
735
|
+
|
|
736
|
+
@doc("Average query duration in milliseconds")
|
|
737
|
+
@encodedName("application/json", "avg_duration_ms")
|
|
738
|
+
avgDurationMs: float64;
|
|
739
|
+
|
|
740
|
+
@doc("Query error rate")
|
|
741
|
+
@encodedName("application/json", "error_rate")
|
|
742
|
+
errorRate: Ratio;
|
|
743
|
+
|
|
744
|
+
@doc("Stats by database system")
|
|
745
|
+
@encodedName("application/json", "by_system")
|
|
746
|
+
bySystem?: DbSystemStats[];
|
|
747
|
+
|
|
748
|
+
@doc("Stats by operation")
|
|
749
|
+
@encodedName("application/json", "by_operation")
|
|
750
|
+
byOperation?: DbOperationStats[];
|
|
751
|
+
|
|
752
|
+
@doc("Slowest queries")
|
|
753
|
+
@encodedName("application/json", "slowest_queries")
|
|
754
|
+
slowestQueries?: DbSlowQuery[];
|
|
755
|
+
}
|
|
756
|
+
|
|
757
|
+
@doc("Statistics by database system")
|
|
758
|
+
model DbSystemStats {
|
|
759
|
+
@doc("Database system")
|
|
760
|
+
system: DbSystem;
|
|
761
|
+
|
|
762
|
+
@doc("Query count")
|
|
763
|
+
@encodedName("application/json", "query_count")
|
|
764
|
+
queryCount: Count;
|
|
765
|
+
|
|
766
|
+
@doc("Average duration in milliseconds")
|
|
767
|
+
@encodedName("application/json", "avg_duration_ms")
|
|
768
|
+
avgDurationMs: float64;
|
|
769
|
+
|
|
770
|
+
@doc("Error rate")
|
|
771
|
+
@encodedName("application/json", "error_rate")
|
|
772
|
+
errorRate: Ratio;
|
|
773
|
+
}
|
|
774
|
+
|
|
775
|
+
@doc("Statistics by operation type")
|
|
776
|
+
model DbOperationStats {
|
|
777
|
+
@doc("Operation name")
|
|
778
|
+
operation: DbOperationName;
|
|
779
|
+
|
|
780
|
+
@doc("Query count")
|
|
781
|
+
@encodedName("application/json", "query_count")
|
|
782
|
+
queryCount: Count;
|
|
783
|
+
|
|
784
|
+
@doc("Average duration in milliseconds")
|
|
785
|
+
@encodedName("application/json", "avg_duration_ms")
|
|
786
|
+
avgDurationMs: float64;
|
|
787
|
+
}
|
|
788
|
+
|
|
789
|
+
@doc("Slow query record")
|
|
790
|
+
model DbSlowQuery {
|
|
791
|
+
@doc("Query text (sanitized)")
|
|
792
|
+
@encodedName("application/json", "query_text")
|
|
793
|
+
queryText: string;
|
|
794
|
+
|
|
795
|
+
@doc("Duration in milliseconds")
|
|
796
|
+
@encodedName("application/json", "duration_ms")
|
|
797
|
+
durationMs: DurationMs;
|
|
798
|
+
|
|
799
|
+
@doc("Database system")
|
|
800
|
+
system: DbSystem;
|
|
801
|
+
|
|
802
|
+
@doc("Database namespace")
|
|
803
|
+
`namespace`?: string;
|
|
804
|
+
|
|
805
|
+
@doc("Operation name")
|
|
806
|
+
operation: DbOperationName;
|
|
807
|
+
|
|
808
|
+
@doc("Timestamp")
|
|
809
|
+
timestamp: utcDateTime;
|
|
810
|
+
}
|