From ce4223699bdc323f5fae8941ef440571d843e13d Mon Sep 17 00:00:00 2001 From: Sylvain Juge Date: Wed, 26 May 2021 16:12:08 +0200 Subject: [PATCH 01/10] add markdown table + json spec --- specs/agents/tracing-spans.md | 42 +++++++++ tests/agents/json-specs/span_types.json | 114 ++++++++++++++++++++++++ 2 files changed, 156 insertions(+) create mode 100644 tests/agents/json-specs/span_types.json diff --git a/specs/agents/tracing-spans.md b/specs/agents/tracing-spans.md index 9ed7a189..e9dc7c5b 100644 --- a/specs/agents/tracing-spans.md +++ b/specs/agents/tracing-spans.md @@ -12,6 +12,48 @@ Spans will also have a `transaction_id`, which is the `id` of the current transaction. While not necessary for distributed tracing, this inclusion allows for simpler and more performant UI queries. +### Span type and sub-type + +Span `type` is mandatory, `subtype` is optional, both can be set to any value by end-user when creating spans. + +For the supported technologies, we have to reuse the same `type` and `subtype` across agents: +- when `type` is not in this table, then any subtype (or none) can be used +- when `type` is in this table and `subtype` is `*`, then any sub-type value (or none) is allowed for the type +- when `type` is in this table and `subtype` is not `*`, then sub-type must be one of the listed values + +| `type` | `subtype` | Description | +| ------------- | ------------------- | --------------------------------- | +| `app` | `inferred` | Sampling profiler inferred spans | +| `custom` | `*` | API custom instrumentation | +| `db` | `cassandra` | Cassandra | +| `db` | `cosmosdb` | Azure CosmosDB | +| `db` | `db2` | IBM DB2 | +| `db` | `dynamodb` | AWS DynamoDB | +| `db` | `elasticsearch` | Elasticsearch | +| `db` | `h2` | H2 | +| `db` | `mariadb` | MariaDB | +| `db` | `mongodb` | MongoDB | +| `db` | `mysql` | MySQL | +| `db` | `oracle` | Oracle Database | +| `db` | `postgresql` | PostgreSQL | +| `db` | `redis` | Redis | +| `db` | `sqlserver` | Microsoft SQL Server | +| `external` | `dubbo` | Apache Dubbo | +| `external` | `grpc` | gRPC | +| `external` | `http` | HTTP client | +| `messaging` | `azurequeue` | Azure Queue | +| `messaging` | `azureservicebus` | Azure Service Bus | +| `messaging` | `jms` | Java Messaging Service | +| `messaging` | `kafka` | Apache Kafka | +| `messaging` | `rabbitmq` | RabbitMQ | +| `messaging` | `sns` | AWS Simple Notification Service | +| `messaging` | `sqs` | AWS Simple Queue Service | +| `process` | `*` | External process | +| `storage` | `azurefile` | Azure Files | +| `storage` | `azuresblob` | Azure Blob Storage | +| `storage` | `s3` | AWS S3 | +| `template` | `*` | Template engines | + ### Span outcome The `outcome` property denotes whether the span represents a success or failure, it is used to compute error rates diff --git a/tests/agents/json-specs/span_types.json b/tests/agents/json-specs/span_types.json new file mode 100644 index 00000000..0cb0fe9f --- /dev/null +++ b/tests/agents/json-specs/span_types.json @@ -0,0 +1,114 @@ +{ + "app": { + "subtypes": { + "inferred": { + "comment": "Sampling profiler inferred spans" + } + } + }, + "custom": { + "comment": "API custom instrumentation" + }, + "db": { + "comment": "database span", + "subtypes": { + "cassandra": { + "comment": "Cassandra" + }, + "cosmosdb": { + "comment": "Azure CosmosDB" + }, + "db2": { + "comment": "IBM DB2" + }, + "dynamodb": { + "comment": "AWS DynamoDB" + }, + "elasticsearch": { + "comment": "Elasticsearch" + }, + "h2": { + "comment": "H2" + }, + "mariadb": { + "comment": "MariaDB" + }, + "mongodb": { + "comment": "MongoDB" + }, + "mysql": { + "comment": "MySQL" + }, + "oracle": { + "comment": "Oracle Database" + }, + "postgresql": { + "comment": "PostgreSQL" + }, + "redis": { + "comment": "Redis" + }, + "sqlserver": { + "comment": "Microsoft SQL Server" + } + } + }, + "external": { + "subtypes": { + "dubbo": { + "comment": "Apache Dubbo" + }, + "grpc": { + "comment": "gRPC" + }, + "http": { + "comment": "HTTP client" + } + } + }, + "messaging": { + "subtypes": { + "azurequeue": { + "comment": "Azure Queue" + }, + "azureservicebus": { + "comment": "Azure Service Bus" + }, + "jms": { + "comment": "Java Messaging Service" + }, + "kafka": { + "comment": "Apache Kafka" + }, + "rabbitmq": { + "comment": "RabbitMQ" + }, + "sns": { + "comment": "AWS Simple Notification Service" + }, + "sqs": { + "comment": "AWS Simple Queue Service" + } + } + }, + "process": { + "comment": "External process" + }, + "storage": { + "subtypes": { + "azurefile": { + "comment": "Azure Files" + }, + "azuresblob": { + "comment": "Azure Blob Storage" + }, + "s3": { + "comment": "AWS S3" + } + } + }, + "template": { + "comment": "Template engines (no sub-type as really platform-specific)" + } +} + From 1982225c8a1fccef8735ba1577e079342d460bb7 Mon Sep 17 00:00:00 2001 From: Sylvain Juge Date: Thu, 27 May 2021 15:16:11 +0200 Subject: [PATCH 02/10] dispatch type/subtype to relevant specs --- specs/agents/tracing-instrumentation-db.md | 16 ++++--- .../tracing-instrumentation-messaging.md | 12 +++++- specs/agents/tracing-spans.md | 42 ------------------- 3 files changed, 21 insertions(+), 49 deletions(-) diff --git a/specs/agents/tracing-instrumentation-db.md b/specs/agents/tracing-instrumentation-db.md index 83030437..cf9fd779 100644 --- a/specs/agents/tracing-instrumentation-db.md +++ b/specs/agents/tracing-instrumentation-db.md @@ -152,6 +152,10 @@ The following fields are relevant for database and datastore spans. Where possib |`_.service.type`|`db`| |`_.service.resource`| `redis` | +### Azure CosmosDB + +TODO + ### SQL Databases | Field | Common values / patterns for all SQL DBs | Comments | @@ -170,9 +174,9 @@ The following fields are relevant for database and datastore spans. Where possib |`_.port`|e.g. `5432`| |`_.service.type`|`db`| -| Field | MySQL | PostgreSQL | MS SQL | Oracle | MariaDB | IBM Db2 | -|-------|:-----:|:----------:|:------:|:------:|:-------:|:-------:| -|`subtype`|`mysql`| `postgresql` | `sqlserver` | `oracle` | `mariadb` | `db2` | -| __**context.destination._**__ |
|
|
|
|
|
| -|`_.service.name`| `mysql` | `postgresql` | `sqlserver` | `oracle` | `mariadb` | `db2` | -|`_.service.resource` | `mysql` | `postgresql` | `sqlserver` | `oracle` |`mariadb` | `db2` | +| Field | MySQL | PostgreSQL | MS SQL | Oracle | MariaDB | IBM Db2 | H2 | +|-------|:-----:|:----------:|:------:|:------:|:-------:|:-------:|:-------:| +|`subtype`|`mysql`| `postgresql` | `sqlserver` | `oracle` | `mariadb` | `h2` | +| __**context.destination._**__ |
|
|
|
|
|
|
| +|`_.service.name`| `mysql` | `postgresql` | `sqlserver` | `oracle` | `mariadb` | `db2` |`h2` | +|`_.service.resource` | `mysql` | `postgresql` | `sqlserver` | `oracle` |`mariadb` | `db2` |`h2` | diff --git a/specs/agents/tracing-instrumentation-messaging.md b/specs/agents/tracing-instrumentation-messaging.md index fc4d368d..184863e6 100644 --- a/specs/agents/tracing-instrumentation-messaging.md +++ b/specs/agents/tracing-instrumentation-messaging.md @@ -28,8 +28,18 @@ polling spans, where we want to capture such as well). - `transaction.type`: `messaging` - Spans: - `span.type`: `messaging` - - `span.subtype`: the name of the framework - e.g. `jms`, `kafka`, `rabbitmq` + - `span.subtype`: depends on service/provider, see table below - `span.action`: `send`, `receive` or `poll` + +| `subtype` | Description | +| ------------------- | --------------------------------- | +| `azurequeue` | Azure Queue | +| `azureservicebus` | Azure Service Bus | +| `jms` | Java Messaging Service | +| `kafka` | Apache Kafka | +| `rabbitmq` | RabbitMQ | +| `sns` | AWS Simple Notification Service | +| `sqs` | AWS Simple Queue Service | ### Naming diff --git a/specs/agents/tracing-spans.md b/specs/agents/tracing-spans.md index e9dc7c5b..9ed7a189 100644 --- a/specs/agents/tracing-spans.md +++ b/specs/agents/tracing-spans.md @@ -12,48 +12,6 @@ Spans will also have a `transaction_id`, which is the `id` of the current transaction. While not necessary for distributed tracing, this inclusion allows for simpler and more performant UI queries. -### Span type and sub-type - -Span `type` is mandatory, `subtype` is optional, both can be set to any value by end-user when creating spans. - -For the supported technologies, we have to reuse the same `type` and `subtype` across agents: -- when `type` is not in this table, then any subtype (or none) can be used -- when `type` is in this table and `subtype` is `*`, then any sub-type value (or none) is allowed for the type -- when `type` is in this table and `subtype` is not `*`, then sub-type must be one of the listed values - -| `type` | `subtype` | Description | -| ------------- | ------------------- | --------------------------------- | -| `app` | `inferred` | Sampling profiler inferred spans | -| `custom` | `*` | API custom instrumentation | -| `db` | `cassandra` | Cassandra | -| `db` | `cosmosdb` | Azure CosmosDB | -| `db` | `db2` | IBM DB2 | -| `db` | `dynamodb` | AWS DynamoDB | -| `db` | `elasticsearch` | Elasticsearch | -| `db` | `h2` | H2 | -| `db` | `mariadb` | MariaDB | -| `db` | `mongodb` | MongoDB | -| `db` | `mysql` | MySQL | -| `db` | `oracle` | Oracle Database | -| `db` | `postgresql` | PostgreSQL | -| `db` | `redis` | Redis | -| `db` | `sqlserver` | Microsoft SQL Server | -| `external` | `dubbo` | Apache Dubbo | -| `external` | `grpc` | gRPC | -| `external` | `http` | HTTP client | -| `messaging` | `azurequeue` | Azure Queue | -| `messaging` | `azureservicebus` | Azure Service Bus | -| `messaging` | `jms` | Java Messaging Service | -| `messaging` | `kafka` | Apache Kafka | -| `messaging` | `rabbitmq` | RabbitMQ | -| `messaging` | `sns` | AWS Simple Notification Service | -| `messaging` | `sqs` | AWS Simple Queue Service | -| `process` | `*` | External process | -| `storage` | `azurefile` | Azure Files | -| `storage` | `azuresblob` | Azure Blob Storage | -| `storage` | `s3` | AWS S3 | -| `template` | `*` | Template engines | - ### Span outcome The `outcome` property denotes whether the span represents a success or failure, it is used to compute error rates From d33a52a9def090341d691b8f6452f8ed81dbe2b5 Mon Sep 17 00:00:00 2001 From: Sylvain Juge Date: Tue, 1 Jun 2021 15:36:52 +0200 Subject: [PATCH 03/10] add few java types + allow for optional subtype --- tests/agents/json-specs/span_types.json | 26 +++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/tests/agents/json-specs/span_types.json b/tests/agents/json-specs/span_types.json index 0cb0fe9f..17e0cb1e 100644 --- a/tests/agents/json-specs/span_types.json +++ b/tests/agents/json-specs/span_types.json @@ -1,5 +1,14 @@ { + "__description": { + "": "root element for type identified by ''", + ".comment": "description for '' (optional)", + ".optional_subtype": "true to allow null subtype, false by default if omitted", + ".subtypes": "root element for sub-types of type '.subtypes.": "sub-type element for ", + ".subtypes..comment": "description of subtype (optional)" + }, "app": { + "optional_subtype": true, "subtypes": { "inferred": { "comment": "Sampling profiler inferred spans" @@ -7,6 +16,7 @@ } }, "custom": { + "optional_subtype": true, "comment": "API custom instrumentation" }, "db": { @@ -21,6 +31,9 @@ "db2": { "comment": "IBM DB2" }, + "derby": { + "comment": "Apache Derby" + }, "dynamodb": { "comment": "AWS DynamoDB" }, @@ -30,6 +43,12 @@ "h2": { "comment": "H2" }, + "hsqldb": { + "comment": "HSQLDB" + }, + "ingres": { + "comment": "Ingres" + }, "mariadb": { "comment": "MariaDB" }, @@ -50,6 +69,9 @@ }, "sqlserver": { "comment": "Microsoft SQL Server" + }, + "unknown": { + "comment": "Unknown database" } } }, @@ -67,6 +89,7 @@ } }, "messaging": { + "comment": "Messaging", "subtypes": { "azurequeue": { "comment": "Azure Queue" @@ -108,7 +131,6 @@ } }, "template": { - "comment": "Template engines (no sub-type as really platform-specific)" + "comment": "Template engines (no sub-type for now as really platform-specific)" } } - From 1c13d284619353716cb8cea422b0d7a1b7cf894d Mon Sep 17 00:00:00 2001 From: Sylvain Juge Date: Wed, 2 Jun 2021 10:29:57 +0200 Subject: [PATCH 04/10] comment -> __description --- tests/agents/json-specs/span_types.json | 84 +++++++++++++------------ 1 file changed, 43 insertions(+), 41 deletions(-) diff --git a/tests/agents/json-specs/span_types.json b/tests/agents/json-specs/span_types.json index 17e0cb1e..32f2321c 100644 --- a/tests/agents/json-specs/span_types.json +++ b/tests/agents/json-specs/span_types.json @@ -1,136 +1,138 @@ { "__description": { "": "root element for type identified by ''", - ".comment": "description for '' (optional)", - ".optional_subtype": "true to allow null subtype, false by default if omitted", + ".__description": "description for '' (optional)", + ".allow_null_subtype": "true to allow null subtype, false by default if omitted", + ".allow_unlisted_subtype": "true to allow unlisted subtypes, false by default if omitted", ".subtypes": "root element for sub-types of type '.subtypes.": "sub-type element for ", - ".subtypes..comment": "description of subtype (optional)" + ".subtypes..__description": "description of subtype (optional)" }, "app": { - "optional_subtype": true, + "allow_null_subtype": true, "subtypes": { "inferred": { - "comment": "Sampling profiler inferred spans" + "__description": "Sampling profiler inferred spans" } } }, "custom": { - "optional_subtype": true, - "comment": "API custom instrumentation" + "__description": "API custom instrumentation", + "allow_null_subtype": true }, "db": { - "comment": "database span", + "__description": "database span", "subtypes": { "cassandra": { - "comment": "Cassandra" + "__description": "Cassandra" }, "cosmosdb": { - "comment": "Azure CosmosDB" + "__description": "Azure CosmosDB" }, "db2": { - "comment": "IBM DB2" + "__description": "IBM DB2" }, "derby": { - "comment": "Apache Derby" + "__description": "Apache Derby" }, "dynamodb": { - "comment": "AWS DynamoDB" + "__description": "AWS DynamoDB" }, "elasticsearch": { - "comment": "Elasticsearch" + "__description": "Elasticsearch" }, "h2": { - "comment": "H2" + "__description": "H2" }, "hsqldb": { - "comment": "HSQLDB" + "__description": "HSQLDB" }, "ingres": { - "comment": "Ingres" + "__description": "Ingres" }, "mariadb": { - "comment": "MariaDB" + "__description": "MariaDB" }, "mongodb": { - "comment": "MongoDB" + "__description": "MongoDB" }, "mysql": { - "comment": "MySQL" + "__description": "MySQL" }, "oracle": { - "comment": "Oracle Database" + "__description": "Oracle Database" }, "postgresql": { - "comment": "PostgreSQL" + "__description": "PostgreSQL" }, "redis": { - "comment": "Redis" + "__description": "Redis" }, "sqlserver": { - "comment": "Microsoft SQL Server" + "__description": "Microsoft SQL Server" }, "unknown": { - "comment": "Unknown database" + "__description": "Unknown database" } } }, "external": { "subtypes": { "dubbo": { - "comment": "Apache Dubbo" + "__description": "Apache Dubbo" }, "grpc": { - "comment": "gRPC" + "__description": "gRPC" }, "http": { - "comment": "HTTP client" + "__description": "HTTP client" } } }, "messaging": { - "comment": "Messaging", + "__description": "Messaging", "subtypes": { "azurequeue": { - "comment": "Azure Queue" + "__description": "Azure Queue" }, "azureservicebus": { - "comment": "Azure Service Bus" + "__description": "Azure Service Bus" }, "jms": { - "comment": "Java Messaging Service" + "__description": "Java Messaging Service" }, "kafka": { - "comment": "Apache Kafka" + "__description": "Apache Kafka" }, "rabbitmq": { - "comment": "RabbitMQ" + "__description": "RabbitMQ" }, "sns": { - "comment": "AWS Simple Notification Service" + "__description": "AWS Simple Notification Service" }, "sqs": { - "comment": "AWS Simple Queue Service" + "__description": "AWS Simple Queue Service" } } }, "process": { - "comment": "External process" + "__description": "External process" }, "storage": { "subtypes": { "azurefile": { - "comment": "Azure Files" + "__description": "Azure Files" }, "azuresblob": { - "comment": "Azure Blob Storage" + "__description": "Azure Blob Storage" }, "s3": { - "comment": "AWS S3" + "__description": "AWS S3" } } }, "template": { - "comment": "Template engines (no sub-type for now as really platform-specific)" + "__description": "Template engines (no sub-type for now as really platform-specific)", + "allow_unlisted_subtype": true } } From 15997d1c13365fb1aa601836a8601d569bdfb286 Mon Sep 17 00:00:00 2001 From: Sylvain Juge Date: Wed, 2 Jun 2021 17:02:41 +0200 Subject: [PATCH 05/10] post Eyal review --- tests/agents/json-specs/span_types.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/agents/json-specs/span_types.json b/tests/agents/json-specs/span_types.json index 32f2321c..847872d8 100644 --- a/tests/agents/json-specs/span_types.json +++ b/tests/agents/json-specs/span_types.json @@ -4,7 +4,7 @@ ".__description": "description for '' (optional)", ".allow_null_subtype": "true to allow null subtype, false by default if omitted", ".allow_unlisted_subtype": "true to allow unlisted subtypes, false by default if omitted", - ".subtypes": "root element for sub-types of type '.subtypes": "root element for sub-types of type '', if omitted or empty subtype must be null, unless 'allow_unlisted_subtype' is set to true", ".subtypes.": "sub-type element for ", ".subtypes..__description": "description of subtype (optional)" }, From 967f907b0ad8a99bdd20953203986f02cc3fe2a2 Mon Sep 17 00:00:00 2001 From: Sylvain Juge Date: Tue, 29 Jun 2021 16:54:35 +0200 Subject: [PATCH 06/10] add 'used-by' to help future alignment changes --- tests/agents/json-specs/span_types.json | 100 +++++++++++++++++++----- 1 file changed, 81 insertions(+), 19 deletions(-) diff --git a/tests/agents/json-specs/span_types.json b/tests/agents/json-specs/span_types.json index 847872d8..0c487186 100644 --- a/tests/agents/json-specs/span_types.json +++ b/tests/agents/json-specs/span_types.json @@ -2,77 +2,124 @@ "__description": { "": "root element for type identified by ''", ".__description": "description for '' (optional)", + ".__used_by": "list of agents that use '' to help document alignment (optional)", ".allow_null_subtype": "true to allow null subtype, false by default if omitted", ".allow_unlisted_subtype": "true to allow unlisted subtypes, false by default if omitted", ".subtypes": "root element for sub-types of type '', if omitted or empty subtype must be null, unless 'allow_unlisted_subtype' is set to true", ".subtypes.": "sub-type element for ", - ".subtypes..__description": "description of subtype (optional)" + ".subtypes..__description": "description of subtype (optional)", + ".subtypes..__used_by": "list of agents that use to help document alignment (optional)" }, "app": { "allow_null_subtype": true, "subtypes": { "inferred": { - "__description": "Sampling profiler inferred spans" + "__description": "Sampling profiler inferred spans", + "__used_by": [ + "java" + ] } } }, "custom": { "__description": "API custom instrumentation", + "__used_by": [ + "java" + ], "allow_null_subtype": true }, "db": { "__description": "database span", "subtypes": { "cassandra": { - "__description": "Cassandra" + "__description": "Cassandra", + "__used_by": [ + "java" + ] }, "cosmosdb": { "__description": "Azure CosmosDB" }, "db2": { - "__description": "IBM DB2" + "__description": "IBM DB2", + "__used_by": [ + "java" + ] }, "derby": { - "__description": "Apache Derby" + "__description": "Apache Derby", + "__used_by": [ + "java" + ] }, "dynamodb": { "__description": "AWS DynamoDB" }, "elasticsearch": { - "__description": "Elasticsearch" + "__description": "Elasticsearch", + "__used_by": [ + "java" + ] }, "h2": { - "__description": "H2" + "__description": "H2", + "__used_by": [ + "java" + ] }, "hsqldb": { - "__description": "HSQLDB" + "__description": "HSQLDB", + "__used_by": [ + "java" + ] }, "ingres": { "__description": "Ingres" }, "mariadb": { - "__description": "MariaDB" + "__description": "MariaDB", + "__used_by": [ + "java" + ] }, "mongodb": { - "__description": "MongoDB" + "__description": "MongoDB", + "__used_by": [ + "java" + ] }, "mysql": { - "__description": "MySQL" + "__description": "MySQL", + "__used_by": [ + "java" + ] }, "oracle": { - "__description": "Oracle Database" + "__description": "Oracle Database", + "__used_by": [ + "java" + ] }, "postgresql": { "__description": "PostgreSQL" }, "redis": { - "__description": "Redis" + "__description": "Redis", + "__used_by": [ + "java" + ] }, "sqlserver": { - "__description": "Microsoft SQL Server" + "__description": "Microsoft SQL Server", + "__used_by": [ + "java" + ] }, "unknown": { - "__description": "Unknown database" + "__description": "Unknown database", + "__used_by": [ + "java" + ] } } }, @@ -99,13 +146,22 @@ "__description": "Azure Service Bus" }, "jms": { - "__description": "Java Messaging Service" + "__description": "Java Messaging Service", + "__used_by": [ + "java" + ] }, "kafka": { - "__description": "Apache Kafka" + "__description": "Apache Kafka", + "__used_by": [ + "java" + ] }, "rabbitmq": { - "__description": "RabbitMQ" + "__description": "RabbitMQ", + "__used_by": [ + "java" + ] }, "sns": { "__description": "AWS Simple Notification Service" @@ -116,7 +172,10 @@ } }, "process": { - "__description": "External process" + "__description": "External process", + "__used_by": [ + "java" + ] }, "storage": { "subtypes": { @@ -133,6 +192,9 @@ }, "template": { "__description": "Template engines (no sub-type for now as really platform-specific)", + "__used_by": [ + "java" + ], "allow_unlisted_subtype": true } } From c560429a2c5822b6cac9b3462ba0e2256ba15486 Mon Sep 17 00:00:00 2001 From: Mikkel Malmberg Date: Wed, 7 Jul 2021 09:12:39 +0200 Subject: [PATCH 07/10] Add Ruby details to spec --- tests/agents/json-specs/span_types.json | 109 ++++++++++++++++++++---- 1 file changed, 94 insertions(+), 15 deletions(-) diff --git a/tests/agents/json-specs/span_types.json b/tests/agents/json-specs/span_types.json index 0c487186..af54b9a8 100644 --- a/tests/agents/json-specs/span_types.json +++ b/tests/agents/json-specs/span_types.json @@ -18,13 +18,38 @@ "__used_by": [ "java" ] + }, + "controller": { + "__description": "Application controller actions", + "__used_by": [ + "ruby" + ] + }, + "graphql": { + "__description": "Incoming GraphQL requests", + "__used_by": [ + "ruby" + ] + }, + "mailer": { + "__description": "Application mailer actions", + "__used_by": [ + "ruby" + ] + }, + "resource": { + "__description": "Application resource actions", + "__used_by": [ + "ruby" + ] } } }, "custom": { "__description": "API custom instrumentation", "__used_by": [ - "java" + "java", + "ruby" ], "allow_null_subtype": true }, @@ -53,12 +78,16 @@ ] }, "dynamodb": { - "__description": "AWS DynamoDB" + "__description": "AWS DynamoDB", + "__used_by": [ + "ruby" + ] }, "elasticsearch": { "__description": "Elasticsearch", "__used_by": [ - "java" + "java", + "ruby" ] }, "h2": { @@ -79,19 +108,22 @@ "mariadb": { "__description": "MariaDB", "__used_by": [ - "java" + "java", + "ruby" ] }, "mongodb": { "__description": "MongoDB", "__used_by": [ - "java" + "java", + "ruby" ] }, "mysql": { "__description": "MySQL", "__used_by": [ - "java" + "java", + "ruby" ] }, "oracle": { @@ -101,12 +133,28 @@ ] }, "postgresql": { - "__description": "PostgreSQL" + "__description": "PostgreSQL", + "__used_by": [ + "ruby" + ] }, "redis": { "__description": "Redis", "__used_by": [ - "java" + "java", + "ruby" + ] + }, + "sqlite": { + "__description": "SQLite", + "__used_by": [ + "ruby" + ] + }, + "sqlite3": { + "__description": "SQLite 3", + "__used_by": [ + "ruby" ] }, "sqlserver": { @@ -118,7 +166,8 @@ "unknown": { "__description": "Unknown database", "__used_by": [ - "java" + "java", + "ruby" ] } } @@ -129,13 +178,33 @@ "__description": "Apache Dubbo" }, "grpc": { - "__description": "gRPC" + "__description": "gRPC", + "__used_by": [ + "ruby" + ] }, "http": { - "__description": "HTTP client" + "__description": "HTTP client", + "__used_by": [ + "ruby" + ] } } }, + "json": { + "__description": "JSON parsing and generation", + "subtypes": { + "parse": { + "__description": "JSON parsing" + }, + "generate": { + "__description": "JSON generation" + } + }, + "__used_by": [ + "ruby" + ] + }, "messaging": { "__description": "Messaging", "subtypes": { @@ -164,10 +233,16 @@ ] }, "sns": { - "__description": "AWS Simple Notification Service" + "__description": "AWS Simple Notification Service", + "__used_by": [ + "ruby" + ] }, "sqs": { - "__description": "AWS Simple Queue Service" + "__description": "AWS Simple Queue Service", + "__used_by": [ + "ruby" + ] } } }, @@ -186,14 +261,18 @@ "__description": "Azure Blob Storage" }, "s3": { - "__description": "AWS S3" + "__description": "AWS S3", + "__used_by": [ + "ruby" + ] } } }, "template": { "__description": "Template engines (no sub-type for now as really platform-specific)", "__used_by": [ - "java" + "java", + "ruby" ], "allow_unlisted_subtype": true } From e2539cbd3bf47a12ec8071ce82c1bf99392a37c5 Mon Sep 17 00:00:00 2001 From: Mikkel Malmberg Date: Wed, 7 Jul 2021 11:47:41 +0200 Subject: [PATCH 08/10] Update span_types.json --- tests/agents/json-specs/span_types.json | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/tests/agents/json-specs/span_types.json b/tests/agents/json-specs/span_types.json index af54b9a8..670180b8 100644 --- a/tests/agents/json-specs/span_types.json +++ b/tests/agents/json-specs/span_types.json @@ -254,11 +254,17 @@ }, "storage": { "subtypes": { + "azureblob": { + "__description": "Azure Blob Storage" + }, "azurefile": { "__description": "Azure Files" }, - "azuresblob": { - "__description": "Azure Blob Storage" + "azuretable": { + "__description": "Azure Storage Table", + "__used_by": [ + "ruby" + ] }, "s3": { "__description": "AWS S3", From ed0807110e2da28f3e5251efb000ecabc0676955 Mon Sep 17 00:00:00 2001 From: Sylvain Juge Date: Tue, 27 Jul 2021 11:30:38 +0200 Subject: [PATCH 09/10] add few entries for nodejs --- tests/agents/json-specs/span_types.json | 28 +++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/tests/agents/json-specs/span_types.json b/tests/agents/json-specs/span_types.json index 670180b8..a2ec308a 100644 --- a/tests/agents/json-specs/span_types.json +++ b/tests/agents/json-specs/span_types.json @@ -90,6 +90,12 @@ "ruby" ] }, + "graphql": { + "__description": "GraphQL", + "__used_by": [ + "nodejs" + ] + }, "h2": { "__description": "H2", "__used_by": [ @@ -112,6 +118,12 @@ "ruby" ] }, + "memcached": { + "__description": "Memcached", + "__used_by": [ + "nodejs" + ] + }, "mongodb": { "__description": "MongoDB", "__used_by": [ @@ -119,6 +131,12 @@ "ruby" ] }, + "mssql": { + "__description": "Microsoft SQL Server", + "__used_by": [ + "nodejs" + ] + }, "mysql": { "__description": "MySQL", "__used_by": [ @@ -281,5 +299,15 @@ "ruby" ], "allow_unlisted_subtype": true + }, + "websocket": { + "__description": "Websockets", + "subtypes": { + "send": { + "__used_by": [ + "nodejs" + ] + } + } } } From c6c38f5e3d9c03a1472b30aef4cfb6c3a10d04c8 Mon Sep 17 00:00:00 2001 From: Sylvain Juge Date: Tue, 24 Aug 2021 16:11:33 +0200 Subject: [PATCH 10/10] add few extra descriptions --- tests/agents/json-specs/span_types.json | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/tests/agents/json-specs/span_types.json b/tests/agents/json-specs/span_types.json index a2ec308a..e6af9031 100644 --- a/tests/agents/json-specs/span_types.json +++ b/tests/agents/json-specs/span_types.json @@ -11,6 +11,7 @@ ".subtypes..__used_by": "list of agents that use to help document alignment (optional)" }, "app": { + "__description": "Spans within application (usually not calling an external system)", "allow_null_subtype": true, "subtypes": { "inferred": { @@ -191,20 +192,26 @@ } }, "external": { + "__description": "Request to external service, usually in request/response pattern", "subtypes": { "dubbo": { - "__description": "Apache Dubbo" + "__description": "Apache Dubbo", + "__used_by": [ + "java" + ] }, "grpc": { "__description": "gRPC", "__used_by": [ - "ruby" + "ruby", + "java" ] }, "http": { "__description": "HTTP client", "__used_by": [ - "ruby" + "ruby", + "java" ] } }