elastic / elastic/apm

Alignment of span type/subtype

Open
#502 4 comments 0 reactions 1 assignee Claimed by @SylvainJuge View on GitHub
8.1-candidate apm-agents discussion
Dominant language
Gherkin
Stars
427
Forks
125
PR merge metrics
No merged PRs in 30d

Description

This is a meta-issue to describe all the known alignment issues/inconsistencies with span type / subtype

The current state of specification is stored in [tests/agents/json-specs/span_types.json](https://github.com/elastic/apm/blob/master/tests/agents/json-specs/span_types.json) in JSON format.

For convenience, we will refer to span type & subtype as `type/subtype`.
This issue description will be modified when alignment progresses.

### List of things that need improvement/simplification/alignment
- [ ] create a generic subtype in `app` for internal delegation that is not framework/library specific: we currently have `app/mailer`, `app/controller`, `app/resource` and `app/graphql` #513
- [ ] create a dedicated `external/email` for spans that send emails (would replace `app/mailer`)
- [ ] remove `json/parse` and `json/generate` as it's only used by ruby, span naming might be enough. deprecated in #513
- [ ] no strict specification for `template/*`, thus any value will be accepted as subtype, listing all known values for each platform is required to replace this with an exhaustive list, or we could replace it with a generic subtype.
- [ ] move `websocket` to `external/websocket`
- [ ] merge `db/sqllite` with `db/sqlite3` deprecated in #513
- [ ] merge `db/sqlserver` and `db/mssql` deprecated in #513
- [ ] remove fields deprecated in #513

### Process
1. https://github.com/elastic/apm/issues/555

| Agent | Add automated span type/subtype checking against shared spec |
|---|---:|
| Java | [![issue details](https://img.shields.io/endpoint?url=https%3A%2F%2Fgiss.app.elstc.co%2Fapi%2Fms%2Felastic%2Fapm-agent-java%2F2278)](https://github.com/elastic/apm-agent-java/issues/2278) [![issue details](https://img.shields.io/endpoint?url=https%3A%2F%2Fgiss.app.elstc.co%2Fapi%2Fstatus%2Felastic%2Fapm-agent-java%2F2278)](https://github.com/elastic/apm-agent-java/issues/2278)|
| dot-net | [![issue details](https://img.shields.io/endpoint?url=https%3A%2F%2Fgiss.app.elstc.co%2Fapi%2Fms%2Felastic%2Fapm-agent-dotnet%2F1539)](https://github.com/elastic/apm-agent-dotnet/issues/1539) [![issue details](https://img.shields.io/endpoint?url=https%3A%2F%2Fgiss.app.elstc.co%2Fapi%2Fstatus%2Felastic%2Fapm-agent-dotnet%2F1539)](https://github.com/elastic/apm-agent-dotnet/issues/1539)|
| Go | [![issue details](https://img.shields.io/endpoint?url=https%3A%2F%2Fgiss.app.elstc.co%2Fapi%2Fms%2Felastic%2Fapm-agent-go%2F1111)](https://github.com/elastic/apm-agent-go/issues/1111) [![issue details](https://img.shields.io/endpoint?url=https%3A%2F%2Fgiss.app.elstc.co%2Fapi%2Fstatus%2Felastic%2Fapm-agent-go%2F1111)](https://github.com/elastic/apm-agent-go/issues/1111)|
| PHP | [![issue details](https://img.shields.io/endpoint?url=https%3A%2F%2Fgiss.app.elstc.co%2Fapi%2Fms%2Felastic%2Fapm-agent-php%2F534)](https://github.com/elastic/apm-agent-php/issues/534) [![issue details](https://img.shields.io/endpoint?url=https%3A%2F%2Fgiss.app.elstc.co%2Fapi%2Fstatus%2Felastic%2Fapm-agent-php%2F534)](https://github.com/elastic/apm-agent-php/issues/534)|
| Ruby | [![issue details](https://img.shields.io/endpoint?url=https%3A%2F%2Fgiss.app.elstc.co%2Fapi%2Fms%2Felastic%2Fapm-agent-ruby%2F1196)](https://github.com/elastic/apm-agent-ruby/issues/1196) [![issue details](https://img.shields.io/endpoint?url=https%3A%2F%2Fgiss.app.elstc.co%2Fapi%2Fstatus%2Felastic%2Fapm-agent-ruby%2F1196)](https://github.com/elastic/apm-agent-ruby/issues/1196)|
| NodeJS | [![issue details](https://img.shields.io/endpoint?url=https%3A%2F%2Fgiss.app.elstc.co%2Fapi%2Fms%2Felastic%2Fapm-agent-nodejs%2F2408)](https://github.com/elastic/apm-agent-nodejs/issues/2408) [![issue details](https://img.shields.io/endpoint?url=https%3A%2F%2Fgiss.app.elstc.co%2Fapi%2Fstatus%2Felastic%2Fapm-agent-nodejs%2F2408)](https://github.com/elastic/apm-agent-nodejs/issues/2408)|
| Python | [![issue details](https://img.shields.io/endpoint?url=https%3A%2F%2Fgiss.app.elstc.co%2Fapi%2Fms%2Felastic%2Fapm-agent-python%2F1305)](https://github.com/elastic/apm-agent-python/issues/1305) [![issue details](https://img.shields.io/endpoint?url=https%3A%2F%2Fgiss.app.elstc.co%2Fapi%2Fstatus%2Felastic%2Fapm-agent-python%2F1305)](https://github.com/elastic/apm-agent-python/issues/1305)|

2. add required type & subtypes the the JSON definition to make tests pass, open PRs (reviews optional)
3. When merging spec PRs, add known inconsistencies to the list above (if required)
4. discuss alignment through comments in this issue
5. goto step 2

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.