OTel working branch targeting OTel feature branch#4894
OTel working branch targeting OTel feature branch#4894janan07 wants to merge 46 commits intojanan07/otel-feature-branchfrom
Conversation
Signed-off-by: Andrew Jandacek <andrew.jandacek@broadcom.com>
|
😺 Thank you for creating this PR! To publish your content to Zowe Docs, follow these required steps.
Need help? Contact the Doc Squad in the #zowe-doc Slack channel. |
|
📁 The PR description is missing the file name(s) for the updated content. List all the files included in this PR so this information displays in our Zowe Docs GitHub Slack channel. If you have addressed this issue already, refresh this page in your browser to remove this comment. |
Signed-off-by: Andrew Jandacek <andrew.jandacek@broadcom.com>
Signed-off-by: Andrew Jandacek <andrew.jandacek@broadcom.com>
Signed-off-by: Andrew Jandacek <andrew.jandacek@broadcom.com>
Signed-off-by: Andrew Jandacek <andrew.jandacek@broadcom.com>
Signed-off-by: Andrew Jandacek <andrew.jandacek@broadcom.com>
Signed-off-by: Andrew Jandacek <andrew.jandacek@broadcom.com>
balhar-jakub
left a comment
There was a problem hiding this comment.
From the skeleton point of view, these are the only changes that would make the usage of the skeleton easier.
Let me know once the general explanation is available and I will review this part.
docs/user-guide/api-mediation/observability/observability-outline.md
Outdated
Show resolved
Hide resolved
docs/user-guide/api-mediation/observability/observability-outline.md
Outdated
Show resolved
Hide resolved
Signed-off-by: Andrew Jandacek <andrew.jandacek@broadcom.com>
Signed-off-by: Andrew Jandacek <andrew.jandacek@broadcom.com>
Signed-off-by: Andrew Jandacek <andrew.jandacek@broadcom.com>
Signed-off-by: Andrew Jandacek <andrew.jandacek@broadcom.com>
Signed-off-by: Andrew Jandacek <andrew.jandacek@broadcom.com>
Signed-off-by: Andrew Jandacek <andrew.jandacek@broadcom.com>
Signed-off-by: Andrew Jandacek <andrew.jandacek@broadcom.com>
Signed-off-by: Andrew Jandacek <andrew.jandacek@broadcom.com>
| Groups services into logical sets. Use this property value to distinguish between different installations, such as sysplex-a vs. sysplex-b, or north-datacenter vs. south-datacenter. `service.name` is expected to be unique within the same `namespace`. | ||
|
|
||
| * **service.instance.id** (The Unique Instance) | ||
| Identifies the specific running process or Address Space. Must be unique for each instance of `service.name` and `service.namespace` pair. On z/OS, this property is typically mapped to the Job Name or a unique UUID. |
There was a problem hiding this comment.
Not true with jobname. Instance id must be globally unique. All instances on different lpars may have the same job name.
There was a problem hiding this comment.
Is this better?
- service.instance.id (The Unique Instance)
Identifies a specific running process or Address Space. This value must be globally unique for every instance. As multiple z/OS systems can run identical Job Names, ensure that you combine the Job Name with a unique identifier (such as the LPAR name or a UUID) to ensure the instance can be isolated during troubleshooting.
There was a problem hiding this comment.
Unfortunately it is not. The general truth is "This value must be globally unique for every instance." - that's valid.
"Identifies a specific running process or Address Space." - Neither of them can be used as instance identifier. When apiml is restarted, new process id as well as address space id is created, so it creates a unique identification of every execution instead of instance.
"As multiple z/OS systems can run identical Job Names, ensure that you combine the Job Name with a unique identifier (such as the LPAR name or a UUID) to ensure the instance can be isolated during troubleshooting." - I am not sure this will work with 2 apiml instances installed on the same lpar.
I am more inclined to just describe the meaning at this point. We may update it with the first story finished.
There was a problem hiding this comment.
Does this rewritten definition make more sense?
service.instance.id (The Unique Instance)
A stable, unique identifier for a single instance of the service. Unlike a Process ID (PID) or Address Space ID (ASID)—which change every time a service restarts—this ID should remain constant across the lifecycle of the deployment.
To ensure global uniqueness across your enterprise:
Single Instance per LPAR: Use a combination of the System Name and the Job Name (e.g., SYS1-ZOWEAPIML).
Multiple Instances per LPAR: If you run multiple API ML instances on the same z/OS system, you must include a unique suffix or port number (e.g., SYS1-ZOWEAPIML-7443 and SYS1-ZOWEAPIML-8443) to ensure they are differentiated in your monitoring tools.
| resource: | ||
| attributes: | ||
| service.name: "zowe-apiml" | ||
| service.namespace: "production-plex" |
There was a problem hiding this comment.
I suggest we put only examples of complete configuration instead of partial ones to specific attribute groups. For instance, here I would expect the 'production' to be set as deployment attribute
There was a problem hiding this comment.
Are you suggesting then that we remove all configuration examples in this article or replace them with the complete configuration? If the latter, can you provide me with the complete configuration?
There was a problem hiding this comment.
If we provide only the partial samples, can we be sure that the users will be able to navigate the docs to follow the right full sample? The use-case from the sysprog's perspective is to enable observability, not configure just some subset of attributes. They need to do it either all or nothing.
We do not have the configuration yet ad the implementation is still in progress.
There was a problem hiding this comment.
That's fine, we can remove all of the examples and have a sample when the implementation is completed.
docs/user-guide/api-mediation/observability/configuring-otel-zos-attributes.md
Outdated
Show resolved
Hide resolved
docs/user-guide/api-mediation/observability/configuring-otel-zos-attributes.md
Outdated
Show resolved
Hide resolved
docs/user-guide/api-mediation/observability/configuring-otel-zos-attributes.md
Show resolved
Hide resolved
| * **resource.attributes** | ||
| A collection of key-value pairs used to identify the telemetry source. See the following sub-properties of `resource.attributes`: | ||
|
|
||
| * **service.name** |
There was a problem hiding this comment.
Here we duplicate the explanation of service attributes that we have in a separate md file just for them. Similarly for the deployment. It will be difficult to keep them in sync over time.
There was a problem hiding this comment.
If you think it's sufficient, I can link to the specific attribute article for these three resources. It just seems that if we have an article for enablement, the user should have an easy reference to what parms are being configured...
There was a problem hiding this comment.
You are right, but we do not have specific list now as some of the attributes are discovered automatically. The purpose of this PR is to create a skeleton to be updated once we get the issues implemented.
There was a problem hiding this comment.
Correct. This content is as a place-holder. I understand this could all change with the implementation.
docs/user-guide/api-mediation/observability/enabling-observability-in-zowe-yaml.md
Outdated
Show resolved
Hide resolved
docs/user-guide/api-mediation/observability/enabling-observability-in-zowe-yaml.md
Outdated
Show resolved
Hide resolved
docs/user-guide/api-mediation/observability/enabling-observability-in-zowe-yaml.md
Outdated
Show resolved
Hide resolved
Signed-off-by: Andrew Jandacek <andrew.jandacek@broadcom.com>
Signed-off-by: Andrew Jandacek <andrew.jandacek@broadcom.com>
Signed-off-by: Andrew Jandacek <andrew.jandacek@broadcom.com>
Signed-off-by: Andrew Jandacek <andrew.jandacek@broadcom.com>
Signed-off-by: Andrew Jandacek <andrew.jandacek@broadcom.com>
iansergeant42
left a comment
There was a problem hiding this comment.
Looking pretty good. Just a few things to address.
| @@ -0,0 +1,96 @@ | |||
| # Configure OpenTelemetry Service Attributes | |||
|
|
|||
| Services are identified via the service.name, service.namespace, and service.instance.id properties. Together, these attributes create a unique identity for API ML instances across your enterprise. | |||
There was a problem hiding this comment.
service.name, service.namespace, and service.instance.id? Trying to be consistent...
|
|
||
| ## z/OS Attribute Reference | ||
|
|
||
| The following attributes are captured during system discovery to describe the mainframe environment: |
There was a problem hiding this comment.
A couple of things:
- Can we describe what 'system discovery' means here? What actually populates the attributes? Our junior sys prog won't understand it.
- Given Richard's statement on process.pid not being configured by system discovery, does this move to another section?
| * **exporter.otlp.protocol** | ||
| The protocol is either `grpc` or `http/protobuf`. | ||
| **Default:** `grcp` |
There was a problem hiding this comment.
To note here that if we do reinstate, we have a typo with grpc and grcp mentioned.
docs/user-guide/api-mediation/observability/enabling-observability-in-zowe-yaml.md
Show resolved
Hide resolved
docs/user-guide/api-mediation/observability/using-your-otel-metrics.md
Outdated
Show resolved
Hide resolved
Signed-off-by: Andrew Jandacek <andrew.jandacek@broadcom.com>
Signed-off-by: Andrew Jandacek <andrew.jandacek@broadcom.com>
Signed-off-by: Andrew Jandacek <andrew.jandacek@broadcom.com>
Signed-off-by: Andrew Jandacek <andrew.jandacek@broadcom.com>
Describe your pull request here: This is the working branch for dev use that targets the OTel feature branch
List the file(s) included in this PR:
After creating the PR, follow the instructions in the comments.