Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consistent naming: db.system to db.system.name, namespace constants, remove db from system-specific names #1734

Open
wants to merge 10 commits into
base: main
Choose a base branch
from

Conversation

lmolkova
Copy link
Contributor

@lmolkova lmolkova commented Jan 10, 2025

Fix #1581

Addresses DB-related portion of #608, replaces db-related things from #1711 and #1613.

  1. Rename db.system to db.system.name. It gives us a good opportunity to clean up constants, batching multiple breaking changes together (see below)
  2. Removes deprecated constants from new enum and updates existing constants to follow consistent naming
  3. Removes db prefix from system-specific attributes following Demo - remove root namespace from system-specific attributes and metrics #1711:
    • some systems (e.g. redis are cache and database and also a messaging system)
    • not all operations that are done on the database are related to DB (control plane, auth, etc)
    • we're quite inconsistent in naming
  4. Adjusts _ -> . where it makes sense

Merge requirement checklist

…e constants, remove db prefix from system-specific attributes
@lmolkova lmolkova changed the title Align with naming guidance: db.system to db.system.name, namespace constants, remove db from system-specific names Consistent naming: db.system to db.system.name, namespace constants, remove db from system-specific names Jan 10, 2025

| Value | Description | Stability |
|---|---|---|
| `actian.ingres` | [Actian Ingres](https://www.actian.com/databases/ingres/) | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ingres seems to be too generic - easy to mix with a word "ingress", but it's a trademark. I'm totally open to change it back to ingres

| `intersystems_cache` | InterSystems Caché | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| `mariadb` | MariaDB (This value has stability level RELEASE CANDIDATE) | ![Release Candidate](https://img.shields.io/badge/-rc-mediumorchid) |
| `maxdb` | SAP MaxDB | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| `aws.dynamodb` | [Amazon DynamoDB](https://aws.amazon.com/pm/dynamodb/) | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
Copy link
Contributor Author

@lmolkova lmolkova Jan 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dynamodb is a trademark, but also "amazon redshift" is a trademark.

Also, s3 is a trademark, but we use aws.s3 in other places.

I'm suggesting to keep all things AWS consistent and use aws prefix regardless of what trademark is registered for

| `hbase` | [Apache HBase](https://hbase.apache.org/) | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| `hive` | [Apache Hive](https://hive.apache.org/) | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| `hsqldb` | [HyperSQL Database](https://hsqldb.org/) | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| `ibm.db2` | [IBM Db2](https://www.ibm.com/db2) | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
Copy link
Contributor Author

@lmolkova lmolkova Jan 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All IBM databases have independent trademarks. E.g. db2

Still, given that other cloud services come with provider as a namespace, I'm suggesting ibm.*.

Maybe @gyliu513 or @mamwl1 would have some input from the IBM side? (it aligns with ibm.watsonx.ai) and we'd use ibm.mq as a messaging system name.

| `memcached` | Memcached | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| `mongodb` | MongoDB | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| `mssql` | Microsoft SQL Server (This value has stability level RELEASE CANDIDATE) | ![Release Candidate](https://img.shields.io/badge/-rc-mediumorchid) |
| `mysql` | MySQL (This value has stability level RELEASE CANDIDATE) | ![Release Candidate](https://img.shields.io/badge/-rc-mediumorchid) |
| `mssql` | Microsoft SQL Server | ![Release Candidate](https://img.shields.io/badge/-rc-mediumorchid) |
Copy link
Contributor Author

@lmolkova lmolkova Jan 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should we rename it to ms.sql or ms.sql.server ? wdyt @trask @jcocchi ?

@lmolkova lmolkova marked this pull request as ready for review January 10, 2025 02:52
@lmolkova lmolkova requested review from a team as code owners January 10, 2025 02:52
model/database/registry.yaml Outdated Show resolved Hide resolved
model/database/registry.yaml Outdated Show resolved Hide resolved
Comment on lines +278 to +279
| `ibm.informix` | [IBM Informix](https://www.ibm.com/products/informix) | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
| `ibm.netezza` | [IBM Netezza](https://www.ibm.com/products/netezza) | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

my initial inclination is not to prefix db2, informix and netezza with ibm, because they are standalone databases that exist outside of ibm cloud (I think still?)

and so feel more like cassandra, geode, etc which we don't prefix with apache

Copy link
Contributor Author

@lmolkova lmolkova Jan 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not everything has a trademark or a unique name - e.g. IBM MQ would have to become ibm.mq regardless of where it's hosted. At this moment we'd become slightly inconsistent.

Also, we use cloud.provider=ibm_cloud, not ibm to talk about the cloud - not sure if we want to keep it though.

Here ibm is a company.

I feel there are two options:

  1. prefix with a company name when a company provides multiple products (i.e. use ibm here) regardless of a trademark or cloud provider. Some company names are the same as product names (mongoDB, easticsearch is similar - it's already prefixed). Apache projects are similar - there is no ambiguity and there is no company that owns all of them.
  2. use company prefix only when there is a potential ambiguity (ibm.mq) and then I'd probably keep spanner, cosmosdb, dynamodb, redshift. At the end of the day, you can host some of those on prem, run in emulators, and cloud provider prefix is not meaningful anyway

stability: experimental
value: "opensearch" # trademark on 'opensearch'
brief: "[OpenSearch](https://opensearch.org/)"
stability: development
- id: oracle
value: "oracle"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

does this work now that we are sort of considering this to point to a top-level namespace?

or maybe a better question, if we add oracle (database) specific attributes what namespace would they be under? (now that we also have oracle cloud related namespaces I think)

Copy link
Contributor Author

@lmolkova lmolkova Jan 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

renamed to oracle.db, but it looks funky along with couchdb, mariadb, cosmosdb, dynamodb... Need to sleep on this.

It's the case where we have one company and may offerings oracle.db, oracle.nosql_db?, oracle.web_logic, oracle.jvm 😅, oracle cloud is being added as oracle_cloud

value: "sap.hana" # trademark on 'sap hana'
brief: "[SAP HANA](https://www.sap.com/products/technology-platform/hana/what-is-sap-hana.html)"
stability: development
- id: sap.maxdb
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

these get tricky...

I think my biases are showing...

if it's a brand name I'm familiar with like informix, I prefer not prefixing it with ibm.

but in this case I don't mind

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not a big fan of having sap.hana and maxdb both being SAP databases but following different naming patterns

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Development

Successfully merging this pull request may close these issues.

Should db.system be db.system.name?
2 participants