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 AI Assistant for SPL | Key Use Cases to Unlock the Power of SPL

Splunk AI Assistant for SPL | Key Use Cases to Unlock the Power of SPL  The Splunk AI Assistant for SPL ...

Buttercup Games: Further Dashboarding Techniques (Part 5)

This series of blogs assumes you have already completed the Splunk Enterprise Search Tutorial as it uses the ...

Customers Increasingly Choose Splunk for Observability

For the second year in a row, Splunk was recognized as a Leader in the 2024 Gartner® Magic Quadrant™ for ...