Splunk AppDynamics

appNameStrategy option in cluster agent configuration for auto-instrumentation does not seems to be working

Raja_Vijayakuma
New Member

Hi

I tried to use 'appNameStrategy' options as described in doc https://docs.appdynamics.com/display/PRO45/Enable+Auto-Instrumentation+of+Java+Applications as part of enabling auto-instrumentation using cluster agent in k8s cluster ( PKS cluster), but i could not get it work.

I am getting below error

[WARNING]: 2020-07-29 01:05:47 - deploymenthandler.go:245 - Cannot start instrumentation. Error getting Application and Tier names for deployment demo-app

instrumentationMethod: Env
  nsToInstrumentRegex: demo-ns
  appNameStrategy: label
  appNameLabel: app  
  defaultEnv: JAVA_OPTS
  resourcesToInstrument: [Deployment,StatefulSet]
  imageInfo:
    java:
      image: "dev.registry.ews.int/vendored/docker.io/appdynamics/java-agent:20.6.0"
      agentMountPath: /opt/appdynamics
  netvizInfo:
    bciEnabled: true
    port: 3892

The error is same for 'appNameStrategy: namespace'. 

Can someone guide me if i am missing something here ?

Labels (1)
0 Karma

Morelz
Builder

Hi there

Can you share your entire Cluster Agent deployment YAML as well as your java application YAML? to better understand what is configured incorrectly?

0 Karma

Raja_Vijayakuma
New Member

cluster agent.yaml

apiVersion: appdynamics.com/v1alpha1
kind: Clusteragent
metadata:
  name: k8s-cluster-agent
  namespace: appdynamics
spec:
  appName: "sbx-cluster-1"
  controllerUrl: "https://*******.saas.appdynamics.com"
  account: "********"
  # docker image info
  image: "dev.registry.ews.int/vendored/docker.io/appdynamics/cluster-agent:20.5.0"
  serviceAccountName: appdynamics-cluster-agent
  logLevel: "DEBUG"
  nsToMonitor:
    - "appdynamics"
    - "cert-manager"
    - "default"
    - "demo-ns"
    - "external-dns"
    - "harness-delegate"
    - "kube-node-lease"
    - "kube-public"
    - "kube-system"
    - "ingress-nginx"
    - "pks-system"
    - "twistlock"
  stdoutLogging: "true"
  instrumentationMethod: Env
  nsToInstrumentRegex: demo-ns
  appNameStrategy: label
  appNameLabel: app
  defaultEnv: JAVA_OPTS
  resourcesToInstrument: [Deployment,StatefulSet]
  imageInfo:
    java:
      image: "dev.registry.ews.int/vendored/docker.io/appdynamics/java-agent:20.6.0"
      agentMountPath: /opt/appdynamics
  netvizInfo:
    bciEnabled: true
    port: 3892

demo-app.yaml

apiVersion: v1
kind: Service
metadata:
  name: demo-app-svc
  namespace: demo-ns
  labels:
    app: demo
    env: dev
    tier: web
    team: dev-team
spec:
  type: ClusterIP
  ports:
    - port: 80
      targetPort: http
      protocol: TCP
      name: http
  selector:
    app: demo
    env: dev
    tier: web
    team: dev-team
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: demo-app
  namespace: demo-ns
  annotations:
    product-documentation: "https://confluence.ews.int/"
    on-call: "000-000-0000"
    email: "pkottam@ews.int"
  labels:
    app: demo
    env: dev
    tier: web
    team: dev-team
spec:
  replicas: 1
  selector:
    matchLabels:
      app: demo
  template:
    metadata:
      annotations:
        product-documentation: "https://confluence.ews.int/"
        on-call: "000-000-0000"
        email: "pkottam@ews.int"
        prometheus.io/scrape: 'true'
        prometheus.io/port: '8080'
        prometheus.io/path: '/actuator/prometheus'
      labels:
        app: demo
        env: dev
        tier: web
        team: dev-team
    spec:
      securityContext:
        runAsUser: 1000
        runAsGroup: 3000
      containers:
        - name: demo-app
          image: "dev.registry.ews.int/ews/demo42b:556"
          imagePullPolicy: Always
          ports:
            - name: http
              containerPort: 8080
              protocol: TCP
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: demo-app-ing
  namespace: demo-ns
  labels:
    app: demo
    env: dev
    tier: web
    team: dev-team
  annotations:
    cert-manager.io/cluster-issuer: cm-vault-issuer
    kubernetes.io/ingress.class: nginx
spec:
  tls:
    - hosts:
        - demo.pks-aws-dev.ews.int
      secretName: demo.pks-aws-dev.ews.int-tls
  rules:
    - host: demo.pks-aws-dev.ews.int
      http:
        paths:
          - path: /
            backend:
              serviceName: demo-app-svc
              servicePort: http

Note: The same issue exists if i use namespace strategy as well..

apiVersion: appdynamics.com/v1alpha1
kind: Clusteragent
metadata:
  name: k8s-cluster-agent
  namespace: appdynamics
spec:
  appName: "sbx-cluster-1"
  controllerUrl: "https://******.saas.appdynamics.com"
  account: "**********"
  # docker image info
  image: "dev.registry.ews.int/vendored/docker.io/appdynamics/cluster-agent:20.5.0"
  serviceAccountName: appdynamics-cluster-agent
  logLevel: "DEBUG"
  nsToMonitor:
    - "appdynamics"
    - "cert-manager"
    - "default"
    - "demo-ns"
    - "external-dns"
    - "harness-delegate"
    - "kube-node-lease"
    - "kube-public"
    - "kube-system"
    - "ingress-nginx"
    - "pks-system"
    - "twistlock"
  stdoutLogging: "true"
  instrumentationMethod: Env
  nsToInstrumentRegex: demo-ns
  appNameStrategy: namespace
  #appNameLabel: app
  #defaultAppName: demo-app
  #defaultInstrumentMatchString: demo-app
  #defaultInstrumentationLabelMatch:
  #- app: demo
  defaultEnv: JAVA_OPTS
  resourcesToInstrument: [Deployment,StatefulSet]
  imageInfo:
    java:
      image: "dev.registry.ews.int/vendored/docker.io/appdynamics/java-agent:20.6.0"
      agentMountPath: /opt/appdynamics
  netvizInfo:
    bciEnabled: true
    port: 3892
  ### Uncomment the following two lines if you need pull secrets
  #imagePullSecrets:
  #  name: "<your-docker-pull-secret-name>"
  #instrumentationRules:
  #  - namespaceRegex: demo-ns
  #    appNameLabel: app
0 Karma

Vaibhav_Medarap
New Member

@Mario.Morelli Just checking if you had a chance to take a look into the above issue. I work along side with @Raja.Vijayakumar.

0 Karma

Morelz
Builder

Hi Vaibhav

Can you test manual instrumentation by using the following settings, and provide the logs of what is happening

appNameStrategy: manual


 And ensure to provide a value for -   defaultAppName

Also can you provide the following information

1. Version of cluster agent you are using?

Get Updates on the Splunk Community!

Splunk Observability Synthetic Monitoring - Resolved Incident on Detector Alerts

We’ve discovered a bug that affected the auto-clear of Synthetic Detectors in the Splunk Synthetic Monitoring ...

Video | Tom’s Smartness Journey Continues

Remember Splunk Community member Tom Kopchak? If you caught the first episode of our Smartness interview ...

3-2-1 Go! How Fast Can You Debug Microservices with Observability Cloud?

3-2-1 Go! How Fast Can You Debug Microservices with Observability Cloud? Learn how unique features like ...