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

Draft PR #19943

Draft
wants to merge 14 commits into
base: develop
Choose a base branch
from
Draft

Draft PR #19943

wants to merge 14 commits into from

Conversation

ubanerjeeNR
Copy link
Contributor

Agent and Fleet Control PP docs - DO NOT MERGE

@ubanerjeeNR ubanerjeeNR added the from_tw Identifies issues/PRs from Tech Docs writers label Feb 11, 2025
@ubanerjeeNR ubanerjeeNR self-assigned this Feb 11, 2025
Copy link

netlify bot commented Feb 11, 2025

Deploy Preview for docs-website-netlify ready!

Name Link
🔨 Latest commit b7bd0cd
🔍 Latest deploy log https://app.netlify.com/sites/docs-website-netlify/deploys/67b6a689f767040008f85daf
😎 Deploy Preview https://deploy-preview-19943--docs-website-netlify.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

Copy link

Hi @ubanerjeeNR 👋

Thanks for your pull request! Your PR is in a queue, and a writer will take a look soon. We generally publish small edits within one business day, and larger edits within three days.

We will automatically generate a preview of your request, and will comment with a link when the preview is ready (usually 10 to 20 minutes).

Before you begin deploying Agent Control to your Kubernetes clusters, ensure that you meet the following prerequisites:

- **Helm 3:** Helm version 3 must be installed on your machine. For installation instructions, see [Installing Helm](https://helm.sh/docs/intro/install).
- **New Relic license key:** You'll need your New Relic license key to report telemetry to your New Relic account.

Choose a reason for hiding this comment

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

This is not the only option. When you go through the install flow you have the option to "Use an existing key" or "Create a new key".

So better to also include something like the following:
If you haven't created one yet, or want to create a new key for Agent Control, you can skip this prerequisite. The Agent Control Install flow will allow you to create a new key.

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 understand the concern but the text doesn't say that you'll need an existing New Relic license key. All it says is you'll need your New Relic license key. That's inclusive of the two situations: an existing key or a new key.

That said, perhaps 'your New Relic license key' is the source of the confusion. I'll change second person pronoun to an indefinite article. 'a New Relic license key'.

Comment on lines +24 to +26
cluster: "YOUR_CLUSTER_NAME"
licenseKey: "YOUR_LICENSE_KEY"
userKey: "YOUR_USER_KEY"
Copy link
Contributor

@Nandu-pns Nandu-pns Feb 13, 2025

Choose a reason for hiding this comment

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

I think the example config needs to be updated. As we removed the use of userKey from the install UI and we're now using System identities for authentication.

We would need to update the examples as outlined here.

  • We need to remove the userKey under the Global variables.
  • We need to add the identityClientId and identityClientSecret under agent-control-deployment
  • Overall, I see 3 references of userKey, we need to update the above in all these cases.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Updating the config with the one from Confluence


- To install Agent Control, run this command:
```shell
helm upgrade --install agent-control --version 0.0.34-beta --namespace newrelic --create-namespace newrelic/agent-control --values values-newrelic.yaml --devel
Copy link
Member

@pranav-new-relic pranav-new-relic Feb 13, 2025

Choose a reason for hiding this comment

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

Suggested change
helm upgrade --install agent-control --version 0.0.34-beta --namespace newrelic --create-namespace newrelic/agent-control --values values-newrelic.yaml --devel
helm upgrade --install agent-control --version 0.0.45-beta -n newrelic newrelic/agent-control --create-namespace --values values-newrelic.yaml --devel

(based on the latest command we have in the updated install flow)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Updating

- **Helm 3:** Helm version 3 must be installed on your machine. For installation instructions, see [Installing Helm](https://helm.sh/docs/intro/install).
- **New Relic license key:** You'll need your New Relic license key to report telemetry to your New Relic account.
- **Kubernetes cluster name:** Have the name of your Kubernetes cluster ready, as it will be referenced during the installation process.
- **Auth Domain Manager:** To set up Agent Control and connect it to Fleet Control, you must have the Authentication Domain Manager role.
Copy link
Collaborator

@shashank-reddy-nr shashank-reddy-nr Feb 13, 2025

Choose a reason for hiding this comment

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

Along with Auth Domain Manager, we also need All Product Admin role I guess. I'm checking with IAM team on this, I will get it confirmed here. (thread)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Tori has provided the details in a separate doc. I am using that info instead.

Comment on lines 161 to 191
# infrastructure:
# type: newrelic/com.newrelic.infrastructure:0.1.0
# content:
# # Ref: `https://github.com/newrelic/helm-charts/tree/master/charts/nri-bundle`
# # Recommended: check and define an explicit chart version (latest stable)
# chart_version: "*"
# # chart_values:
# # newrelic-infrastructure:
# # enableProcessMetrics: true
# logs:
# type: newrelic/io.fluentbit:0.1.0
# content:
# # Ref: `https://github.com/newrelic/helm-charts/tree/master/charts/newrelic-logging`
# # Recommended: check and define an explicit chart version (latest stable)
# chart_version: "*"
# # chart_values:
# # newrelic-logging:
# # sendMetrics: true
# agent-operator:
# type: com.newrelic.k8s_agent_operator:0.1.0
# content:
# chart_version: "*"
# open-telemetry:
# type: newrelic/io.opentelemetry.collector:0.2.0
# content:
# # Ref: `https://github.com/newrelic/helm-charts/blob/master/charts/nr-k8s-otel-collector/values.yaml`
# # Recommended: check and define an explicit chart version (latest stable)
# chart_version: "*"
# # chart_values:
# # nr-k8s-otel-collector:
# # receivers.filelog.enabled: false
Copy link
Contributor

Choose a reason for hiding this comment

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

I think open-telemetry needs to be uncommented under sub agents for this example, @josemore could you please confirm ?

Comment on lines 142 to 146
```yaml
global:
cluster: "YOUR_CLUSTER_NAME"
licenseKey: "YOUR_LICENSE_KEY"
userKey: "YOUR_USER_KEY"
Copy link
Contributor

@Nandu-pns Nandu-pns Feb 13, 2025

Choose a reason for hiding this comment

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

It looks we've an indentation issue here.

image

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Strange. I don't see this in the output. Looking into this.

@pranav-new-relic
Copy link
Member

FYI @ubanerjeeNR: The Agent Control contents of this PR have been reviewed by team Virtuoso and a few spots for correction have been identified. We've deferred a question to @josemore for confirmation (post which we can connect with you, or help make the correction ourselves as it shouldn't be a large one); with that, we believe the Agent Control contents should be in a good shape.

Comment on lines +65 to +68
Verify the status of your pods by running:
```shell
kubectl get pods -n newrelic
```
Copy link
Member

Choose a reason for hiding this comment

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

this is too generic IMO, we could at least explain how to check the status server

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@paologallinaharbur - can you please share specific details?

Copy link
Member

Choose a reason for hiding this comment

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

it is already in the Pr, but in a different section:

Agent Control exposes a local status endpoint. Used to understand the health of Agent Control and of managed agents. The endpoint is enabled by default on port `52100`. Follow these steps to query the cluster status:
[...] it is in the troubleshooting part

Copy link
Member

Choose a reason for hiding this comment

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

checking the pods is not enough, since you can see 5 up and running, not knowing that 3 are missing

Copy link
Member

Choose a reason for hiding this comment

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

I think it would be very beneficial to add a page explaining the underlying architecture and how the agent Control works, is it in scope?

This feature is currently provided as part of a preview program pursuant to our [pre-release policies](/docs/licenses/license-information/referenced-policies/new-relic-pre-release-policy).
</Callout>

The [`values-newrelic.yaml`](https://github.com/newrelic/helm-charts/blob/master/charts/agent-control/values.yaml) file, which traditionally defined agent behavior, now also includes settings for Agent Control. The settings and parameters that you configure in this file define how Agent Control and the agents it manages operate. This file is referred to as the local configuration.
Copy link
Member

Choose a reason for hiding this comment

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

they are different values.yaml, we did not modify the old one

Comment on lines +59 to +62
agent-operator:
type: com.newrelic.k8s_agent_operator:0.1.0
content:
chart_version: "*"
Copy link
Member

Choose a reason for hiding this comment

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

we said that the APM operator is not in scope for public preview.. I think we should remove this

Copy link
Member

@paologallinaharbur paologallinaharbur Feb 19, 2025

Choose a reason for hiding this comment

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

should we clarify why a user should use the otel collector vs the nri-kubernetes?


<CollapserGroup>
<Collapser
id="agent-control-config"
Copy link
Member

Choose a reason for hiding this comment

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

this id is the very same as before, is it expected?

Comment on lines +260 to +261
id="prometheus-config"
title="Prometheus configuration"
Copy link
Member

Choose a reason for hiding this comment

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

title and ids are wrong


</CollapserGroup>

### Remote configuration: New Relic infrastructure
Copy link
Member

Choose a reason for hiding this comment

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

I think it is not clear that locally we had a configuration for AC + 1 for each subagent

In the remove config section you added examples for the subAgents and no AC config is there

</CollapserGroup>

### Remote configuration: New Relic infrastructure

Copy link
Member

Choose a reason for hiding this comment

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

I think we should explain which part of the AC config can be changed. @rubenruizdegauna @davidgit superAgent config is not going to be hidden right?

Copy link
Contributor

Choose a reason for hiding this comment

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

FM confirmed that it will be hidden for the customers.

Comment on lines +205 to +208
chart_version: "*"
chart_values:
newrelic-infrastructure:
enableProcessMetrics: true
Copy link
Member

Choose a reason for hiding this comment

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

Indentation is wrong, moreover I would explain something regarding the config. I would point out that version "*" is not recommended, I would point out to the values.yalm so that they can retrieve the list of additional values

    chart_version: "*"
    chart_values:
      newrelic-infrastructure:
        enableProcessMetrics: true

>

<Callout variant="important">
Create a Kubernetes secret to securely store the New Relic license key and use it in the `chart_values` in replacement of the `licenseKey` value:
Copy link
Member

@paologallinaharbur paologallinaharbur Feb 19, 2025

Choose a reason for hiding this comment

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

this is not needed anymore, we support global variables for the license key and it gets automatically injected

(in the same way for other agents the licenseKey is not needed to be passed as a secret)

Copy link
Member

Choose a reason for hiding this comment

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

and yaml below is broken

Comment on lines +275 to +279
```yaml
chart_version: "*"
chart_values:
newrelic-prometheus-agent:
lowDataMode: true
Copy link
Member

Choose a reason for hiding this comment

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

this is about prometheus


For this approach, create a configuration in Fleet Control UI with the following structure, specifying the desired `receivers.filelog.enabled` value and referencing any other relevant Helm chart values:

```yaml
Copy link
Member

Choose a reason for hiding this comment

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

I think that all yaml are broken since in markdown it ignores the first spaces, but then it adds them... therefore it seems valid but it is like
Screenshot 2025-02-19 at 18 06 19

chart_version: "*"
chart_values:
newrelic-logging:
sendMetrics: true
Copy link
Member

Choose a reason for hiding this comment

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

can we add a link to the full list of values?

Copy link
Member

Choose a reason for hiding this comment

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

moreover the version "*" it is not recommended

Comment on lines +245 to +248
chart_version: "*"
chart_values:
newrelic-prometheus-agent:
lowDataMode: true
Copy link
Member

Choose a reason for hiding this comment

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

same here: version "*" + link

chart_version: "*"
chart_values:
newrelic-infrastructure:
enableProcessMetrics: true
Copy link
Member

Choose a reason for hiding this comment

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

wrong indentation

Comment on lines +143 to +149
global:
cluster: "YOUR_CLUSTER_NAME"
licenseKey: "YOUR_LICENSE_KEY"
# Values related to the agent control's Helm chart release.
# `https://github.com/newrelic/helm-charts/blob/master/charts/agent-control/values.yaml`
agent-control-deployment:
identityClientId: ""
Copy link
Member

Choose a reason for hiding this comment

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

indentation is wrong

Uploading Screenshot 2025-02-19 at 18.12.11.png…

Copy link
Member

Choose a reason for hiding this comment

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

Screenshot 2025-02-19 at 18 14 04

Comment on lines +167 to +170
agent-operator:
type: newrelic/com.newrelic.k8s_agent_operator:0.1.0
content:
chart_version: "*"
Copy link
Member

Choose a reason for hiding this comment

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

is this included for public preview?

global:
lowDataMode: true
newrelic-prometheus-agent:
config.kubernetes.integrations_filter.enabled: false
Copy link
Member

Choose a reason for hiding this comment

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

is this the right format?



### Local configuration: OpenTelemetry
The following snippet demonstrates installing Agent Control with OpenTelemetry and disabling the filelog receiver in the managed [`nr-k8s-otel-collector` Helm chart](https://github.com/newrelic/helm-charts/tree/master/charts/nr-k8s-otel-collector#values):
Copy link
Member

Choose a reason for hiding this comment

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

where the file log receiver is modified in this config?

Comment on lines +84 to +88

- **Invalid `identityClientId`:** `Error getting system identity auth token. The API endpoint returned 404: Failed to find Identity: <identityClientId-value>`
- **Invalid `identityClientSecret`:** `Error getting system identity auth token. The API endpoint returned 400: Bad client secret.`
- **Identity expired:** `Error getting system identity auth token. The API endpoint returned 400: Expired client secret.`
- **Missing required permissions:** `Failed to create a New Relic System Identity for Fleet Control communication authentication. Please verify that your User Key is valid and that your Account Organization has the necessary permissions to create a System Identity: Exception while fetching data (/create) : Not authorized to perform this action or the entity is not found.`
Copy link
Member

Choose a reason for hiding this comment

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

The page looks weird

Screenshot 2025-02-19 at 18 16 14

- **New Relic license key:** You'll need a New Relic license key to report telemetry to your New Relic account.
- **Kubernetes cluster name:** Have the name of your Kubernetes cluster ready, as it will be referenced during the installation process.
- **Auth Domain Manager:** To set up Agent Control and connect it to Fleet Control, you must have the Authentication Domain Manager role.
- **Existing instrumentation:** If you already have a Kubernetes cluster instrumented with New Relic, you have to uninstall the instrumentation and then re-install it:
Copy link
Member

Choose a reason for hiding this comment

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

I created a PR adding a page to do a small deep dive on this #20049


The solution is compatible with:
- Last three minor Kubernetes releases.
- Minikube, Kind, Amazon Elastic Kubernetes Service (Amazon EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE).
Copy link
Member

Choose a reason for hiding this comment

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

@ubanerjeeNR
We also support GKE autopilot and EKS Auto Mode

Notice that despite the AC supports them, some agents might require specific configs (or be not compatible). I think this is why a few lines below we state:

For system requirements for the Kubernetes infrastructure agent and the New Relic OpenTelemetry collector, see: [...]

Can you review the wording and add the two new flavours we support?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
from_tw Identifies issues/PRs from Tech Docs writers
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants