cryostatio / cryostat

Other
7 stars 8 forks source link

[Bug] Match expression evaluation always has empty target annotations structure #511

Closed andrewazores closed 3 weeks ago

andrewazores commented 3 weeks ago

Current Behavior

cryostat_1            | Jun 10, 2024 8:18:01 PM io.cryostat.expressions.MatchExpressionEvaluator load
cryostat_1            | INFO: Evaluating script "'PORT' in target.annotations.cryostat " on target: SimplifiedTarget[connectUrl=http://sample-app-3:8912/, alias=vertx-fib-demo-3, jvmId=null, labels={}, annotations=Annotations[platform={}, cryostat={}]]
cryostat_1            | Jun 10, 2024 8:18:01 PM io.cryostat.expressions.MatchExpressionEvaluator load
cryostat_1            | INFO: Evaluating script "'PORT' in target.annotations.cryostat " on target: SimplifiedTarget[connectUrl=service:jmx:rmi:///jndi/rmi://cryostat3:9091/jmxrmi, alias=%2Fdeployments%2Fquarkus-run.jar, jvmId=null, labels={}, annotations=Annotations[platform={}, cryostat={}]]
cryostat_1            | Jun 10, 2024 8:18:01 PM io.cryostat.expressions.MatchExpressionEvaluator load
cryostat_1            | INFO: Evaluating script "'PORT' in target.annotations.cryostat " on target: SimplifiedTarget[connectUrl=http://sample-app-2:8911/, alias=vertx-fib-demo-2, jvmId=null, labels={}, annotations=Annotations[platform={}, cryostat={}]]
cryostat_1            | Jun 10, 2024 8:18:01 PM io.cryostat.expressions.MatchExpressionEvaluator load
cryostat_1            | INFO: Evaluating script "'PORT' in target.annotations.cryostat " on target: SimplifiedTarget[connectUrl=service:jmx:rmi:///jndi/rmi://vertx-fib-demo-3:9095/jmxrmi, alias=es.andrewazor.demo.Main, jvmId=null, labels={}, annotations=Annotations[platform={}, cryostat={}]]
cryostat_1            | Jun 10, 2024 8:18:01 PM io.cryostat.expressions.MatchExpressionEvaluator load
cryostat_1            | INFO: Evaluating script "'PORT' in target.annotations.cryostat " on target: SimplifiedTarget[connectUrl=service:jmx:rmi:///jndi/rmi://vertx-fib-demo-2:9094/jmxrmi, alias=es.andrewazor.demo.Main, jvmId=null, labels={}, annotations=Annotations[platform={}, cryostat={}]]
cryostat_1            | Jun 10, 2024 8:18:01 PM io.cryostat.expressions.MatchExpressionEvaluator load
cryostat_1            | INFO: Evaluating script "'PORT' in target.annotations.cryostat " on target: SimplifiedTarget[connectUrl=service:jmx:rmi:///jndi/rmi://sample-app-1:9093/jmxrmi, alias=compose_sample-app-1_1, jvmId=null, labels={url=https://access.redhat.com/containers/#/registry.access.redhat.com/ubi8/openjdk-17/images/1.17-1.1693366272, name=ubi8/openjdk-17, usage=https://access.redhat.com/documentation/en-us/red_hat_jboss_middleware_for_openshift/3/html/red_hat_java_s2i_for_openshift/, vendor=Red Hat, Inc., release=1.1693366272, summary=Source To Image (S2I) image for Red Hat OpenShift providing OpenJDK 17, vcs-ref=0903a764fc8f6f41c6003906542e9f7dbe6b0f7b, version=1.17, vcs-type=git, build-date=2023-08-30T04:08:45, maintainer=Red Hat OpenJDK <openjdk@redhat.com>, description=Source To Image (S2I) image for Red Hat OpenShift providing OpenJDK 17, architecture=x86_64, io.cekit.version=4.7.0, io.openshift.tags=builder,java, org.jboss.product=openjdk, distribution-scope=public, io.buildah.version=1.29.0, io.k8s.description=Platform for building and running plain Java applications (fat-jar and flat classpath), io.cryostat.jmxHost=sample-app-1, io.cryostat.jmxPort=9093, io.k8s.display-name=Java Applications, com.redhat.component=openjdk-17-ubi8-container, io.cryostat.discovery=true, com.redhat.license_terms=https://www.redhat.com/en/about/red-hat-end-user-license-agreements#UBI, com.docker.compose.oneoff=False, org.jboss.product.version=17, com.docker.compose.project=compose, com.docker.compose.service=sample-app-1, com.docker.compose.version=1.29.2, io.fabric8.s2i.version.maven=3.8, io.openshift.expose-services=, io.openshift.s2i.destination=/tmp, io.openshift.s2i.scripts-url=image:///usr/local/s2i, com.docker.compose.config-hash=65481a5299a7bca8c8ea19437bce9d0351229d093df59e66ec1fd9c5f694fe2a, org.jboss.product.openjdk.version=17, com.docker.compose.container-number=1, org.jboss.container.deployments-dir=/deployments, com.docker.compose.project.working_dir=/home/work/workspace/cryostat3/compose, com.docker.compose.project.config_files=/home/work/workspace/cryostat3/compose/cryostat.yml,/home/work/workspace/cryostat3/compose/db.yml,/home/work/workspace/cryostat3/compose/sample-apps.yml,/home/work/workspace/cryostat3/compose/no_proxy.yml,/home/work/workspace/cryostat3/compose/s3_no_proxy.yml,/home/work/workspace/cryostat3/compose/s3-localstack.yml}, annotations=Annotations[platform={}, cryostat={}]]
cryostat_1            | Jun 10, 2024 8:18:01 PM io.cryostat.expressions.MatchExpressionEvaluator load
cryostat_1            | INFO: Evaluating script "'PORT' in target.annotations.cryostat " on target: SimplifiedTarget[connectUrl=http://sample-app-1:8910/, alias=vertx-fib-demo-1, jvmId=null, labels={}, annotations=Annotations[platform={}, cryostat={}]]
cryostat_1            | Jun 10, 2024 8:18:01 PM io.cryostat.expressions.MatchExpressionEvaluator load
cryostat_1            | INFO: Evaluating script "'PORT' in target.annotations.cryostat " on target: SimplifiedTarget[connectUrl=service:jmx:rmi:///jndi/rmi://quarkus-test-agent:22222/jmxrmi, alias=quarkus-test-agent, jvmId=null, labels={}, annotations=Annotations[platform={}, cryostat={}]]
cryostat_1            | Jun 10, 2024 8:18:01 PM io.cryostat.expressions.MatchExpressionEvaluator load
cryostat_1            | INFO: Evaluating script "'PORT' in target.annotations.cryostat " on target: SimplifiedTarget[connectUrl=http://quarkus-test-agent:9977/, alias=quarkus-test-agent, jvmId=null, labels={}, annotations=Annotations[platform={}, cryostat={}]]
cryostat_1            | Jun 10, 2024 8:18:01 PM io.cryostat.expressions.MatchExpressionEvaluator load
cryostat_1            | INFO: Evaluating script "'PORT' in target.annotations.cryostat " on target: SimplifiedTarget[connectUrl=service:jmx:rmi:///jndi/rmi://vertx-fib-demo-1:9093/jmxrmi, alias=es.andrewazor.demo.Main, jvmId=null, labels={}, annotations=Annotations[platform={}, cryostat={}]]

I added some logging while debugging this problem. It looks like the list of Target objects that the evaluator retrieves always has every Target with an empty Annotations structure, so expressions naturally always evaluate to false.

Expected Behavior

No response

Steps To Reproduce

No response

Environment

No response

Anything else?

No response

andrewazores commented 3 weeks ago

The targets do have this structure populated though, as seen in the entity details on the topology view:

image

[
  {
    "id": 1,
    "connectUrl": "service:jmx:rmi:///jndi/rmi://cryostat3:9091/jmxrmi",
    "alias": "%2Fdeployments%2Fquarkus-run.jar",
    "jvmId": "-FXgYk8FUBCehlURk__22KUZ__uaXmoNebpNGnM1WnI=",
    "labels": [],
    "annotations": {
      "platform": [],
      "cryostat": [
        {
          "key": "HOST",
          "value": "cryostat3"
        },
        {
          "key": "PORT",
          "value": "9091"
        },
        {
          "key": "REALM",
          "value": "JDP"
        },
        {
          "key": "JAVA_MAIN",
          "value": "/deployments/quarkus-run.jar"
        }
      ]
    },
    "agent": false
  },
  {
    "id": 2,
    "connectUrl": "http://quarkus-test-agent:9977/",
    "alias": "quarkus-test-agent",
    "jvmId": "8vJv8ehzrmcKU2LlREidXs2J54srO8BsYo7nT52hjDM=",
    "labels": [],
    "annotations": {
      "platform": [
        {
          "key": "INSTANCE_ID",
          "value": "2b69c3ca-e647-45f1-90a0-6ab9b3e625c0"
        }
      ],
      "cryostat": [
        {
          "key": "PID",
          "value": "1"
        },
        {
          "key": "HOST",
          "value": "quarkus-test-agent"
        },
        {
          "key": "PORT",
          "value": "9977"
        },
        {
          "key": "REALM",
          "value": "quarkus-test-agent"
        },
        {
          "key": "JAVA_MAIN",
          "value": "/deployments/quarkus-run.jar"
        },
        {
          "key": "START_TIME",
          "value": "1718050592"
        }
      ]
    },
    "agent": true
  },
  {
    "id": 3,
    "connectUrl": "service:jmx:rmi:///jndi/rmi://quarkus-test-agent:22222/jmxrmi",
    "alias": "quarkus-test-agent",
    "jvmId": "8vJv8ehzrmcKU2LlREidXs2J54srO8BsYo7nT52hjDM=",
    "labels": [],
    "annotations": {
      "platform": [
        {
          "key": "INSTANCE_ID",
          "value": "2b69c3ca-e647-45f1-90a0-6ab9b3e625c0"
        }
      ],
      "cryostat": [
        {
          "key": "PID",
          "value": "1"
        },
        {
          "key": "HOST",
          "value": "quarkus-test-agent"
        },
        {
          "key": "PORT",
          "value": "22222"
        },
        {
          "key": "REALM",
          "value": "quarkus-test-agent"
        },
        {
          "key": "JAVA_MAIN",
          "value": "/deployments/quarkus-run.jar"
        },
        {
          "key": "START_TIME",
          "value": "1718050592"
        }
      ]
    },
    "agent": false
  },
  {
    "id": 4,
    "connectUrl": "service:jmx:rmi:///jndi/rmi://vertx-fib-demo-1:9093/jmxrmi",
    "alias": "es.andrewazor.demo.Main",
    "jvmId": "zbohT4B9vv31fPgc7l495Yrai_WVdyvsche-tUaSNUc=",
    "labels": [],
    "annotations": {
      "platform": [],
      "cryostat": [
        {
          "key": "HOST",
          "value": "vertx-fib-demo-1"
        },
        {
          "key": "PORT",
          "value": "9093"
        },
        {
          "key": "REALM",
          "value": "JDP"
        },
        {
          "key": "JAVA_MAIN",
          "value": "es.andrewazor.demo.Main"
        }
      ]
    },
    "agent": false
  },
  {
    "id": 5,
    "connectUrl": "service:jmx:rmi:///jndi/rmi://vertx-fib-demo-2:9094/jmxrmi",
    "alias": "es.andrewazor.demo.Main",
    "jvmId": null,
    "labels": [],
    "annotations": {
      "platform": [],
      "cryostat": [
        {
          "key": "HOST",
          "value": "vertx-fib-demo-2"
        },
        {
          "key": "PORT",
          "value": "9094"
        },
        {
          "key": "REALM",
          "value": "JDP"
        },
        {
          "key": "JAVA_MAIN",
          "value": "es.andrewazor.demo.Main"
        }
      ]
    },
    "agent": false
  },
  {
    "id": 7,
    "connectUrl": "http://sample-app-3:8912/",
    "alias": "vertx-fib-demo-3",
    "jvmId": "fH_Oyh1V4s1FLtftCEUADwrZQ-R5QZGU6NrubriHgVQ=",
    "labels": [],
    "annotations": {
      "platform": [
        {
          "key": "INSTANCE_ID",
          "value": "f65f1277-9908-4d0e-9bf6-e5d1bb2e7e2b"
        }
      ],
      "cryostat": [
        {
          "key": "PID",
          "value": "1"
        },
        {
          "key": "HOST",
          "value": "vertx-fib-demo-3"
        },
        {
          "key": "PORT",
          "value": "8912"
        },
        {
          "key": "REALM",
          "value": "vertx-fib-demo-3"
        },
        {
          "key": "JAVA_MAIN",
          "value": "es.andrewazor.demo.Main -javaagent:/opt/jib-agents/cryostat-agent-0.3.0-SNAPSHOT.jar"
        },
        {
          "key": "START_TIME",
          "value": "1718050615"
        }
      ]
    },
    "agent": true
  },
  {
    "id": 6,
    "connectUrl": "http://sample-app-2:8911/",
    "alias": "vertx-fib-demo-2",
    "jvmId": "bKom9TxijmBDFSgseyxBO3Mh3J9xtCcFIYwtuSeSTuM=",
    "labels": [],
    "annotations": {
      "platform": [
        {
          "key": "INSTANCE_ID",
          "value": "e417e142-9aec-42a2-9fd1-3b6e2358bc39"
        }
      ],
      "cryostat": [
        {
          "key": "PID",
          "value": "1"
        },
        {
          "key": "HOST",
          "value": "vertx-fib-demo-2"
        },
        {
          "key": "PORT",
          "value": "8911"
        },
        {
          "key": "REALM",
          "value": "vertx-fib-demo-2"
        },
        {
          "key": "JAVA_MAIN",
          "value": "es.andrewazor.demo.Main -javaagent:/opt/jib-agents/cryostat-agent-0.3.0-SNAPSHOT.jar"
        },
        {
          "key": "START_TIME",
          "value": "1718050615"
        }
      ]
    },
    "agent": true
  },
  {
    "id": 8,
    "connectUrl": "http://sample-app-1:8910/",
    "alias": "vertx-fib-demo-1",
    "jvmId": "zbohT4B9vv31fPgc7l495Yrai_WVdyvsche-tUaSNUc=",
    "labels": [],
    "annotations": {
      "platform": [
        {
          "key": "INSTANCE_ID",
          "value": "1f30724b-f79b-4034-ac13-0ff6f403bf94"
        }
      ],
      "cryostat": [
        {
          "key": "PID",
          "value": "1"
        },
        {
          "key": "HOST",
          "value": "vertx-fib-demo-1"
        },
        {
          "key": "PORT",
          "value": "8910"
        },
        {
          "key": "REALM",
          "value": "vertx-fib-demo-1"
        },
        {
          "key": "JAVA_MAIN",
          "value": "es.andrewazor.demo.Main -javaagent:/opt/jib-agents/cryostat-agent-0.3.0-SNAPSHOT.jar"
        },
        {
          "key": "START_TIME",
          "value": "1718050615"
        }
      ]
    },
    "agent": true
  },
  {
    "id": 9,
    "connectUrl": "service:jmx:rmi:///jndi/rmi://vertx-fib-demo-3:9095/jmxrmi",
    "alias": "es.andrewazor.demo.Main",
    "jvmId": null,
    "labels": [],
    "annotations": {
      "platform": [],
      "cryostat": [
        {
          "key": "HOST",
          "value": "vertx-fib-demo-3"
        },
        {
          "key": "PORT",
          "value": "9095"
        },
        {
          "key": "REALM",
          "value": "JDP"
        },
        {
          "key": "JAVA_MAIN",
          "value": "es.andrewazor.demo.Main"
        }
      ]
    },
    "agent": false
  },
  {
    "id": 10,
    "connectUrl": "service:jmx:rmi:///jndi/rmi://sample-app-1:9093/jmxrmi",
    "alias": "compose_sample-app-1_1",
    "jvmId": "zbohT4B9vv31fPgc7l495Yrai_WVdyvsche-tUaSNUc=",
    "labels": [
      {
        "key": "url",
        "value": "https://access.redhat.com/containers/#/registry.access.redhat.com/ubi8/openjdk-17/images/1.17-1.1693366272"
      },
      {
        "key": "name",
        "value": "ubi8/openjdk-17"
      },
      {
        "key": "usage",
        "value": "https://access.redhat.com/documentation/en-us/red_hat_jboss_middleware_for_openshift/3/html/red_hat_java_s2i_for_openshift/"
      },
      {
        "key": "vendor",
        "value": "Red Hat, Inc."
      },
      {
        "key": "release",
        "value": "1.1693366272"
      },
      {
        "key": "summary",
        "value": "Source To Image (S2I) image for Red Hat OpenShift providing OpenJDK 17"
      },
      {
        "key": "vcs-ref",
        "value": "0903a764fc8f6f41c6003906542e9f7dbe6b0f7b"
      },
      {
        "key": "version",
        "value": "1.17"
      },
      {
        "key": "vcs-type",
        "value": "git"
      },
      {
        "key": "build-date",
        "value": "2023-08-30T04:08:45"
      },
      {
        "key": "maintainer",
        "value": "Red Hat OpenJDK <openjdk@redhat.com>"
      },
      {
        "key": "description",
        "value": "Source To Image (S2I) image for Red Hat OpenShift providing OpenJDK 17"
      },
      {
        "key": "architecture",
        "value": "x86_64"
      },
      {
        "key": "io.cekit.version",
        "value": "4.7.0"
      },
      {
        "key": "io.openshift.tags",
        "value": "builder,java"
      },
      {
        "key": "org.jboss.product",
        "value": "openjdk"
      },
      {
        "key": "distribution-scope",
        "value": "public"
      },
      {
        "key": "io.buildah.version",
        "value": "1.29.0"
      },
      {
        "key": "io.k8s.description",
        "value": "Platform for building and running plain Java applications (fat-jar and flat classpath)"
      },
      {
        "key": "io.cryostat.jmxHost",
        "value": "sample-app-1"
      },
      {
        "key": "io.cryostat.jmxPort",
        "value": "9093"
      },
      {
        "key": "io.k8s.display-name",
        "value": "Java Applications"
      },
      {
        "key": "com.redhat.component",
        "value": "openjdk-17-ubi8-container"
      },
      {
        "key": "io.cryostat.discovery",
        "value": "true"
      },
      {
        "key": "com.redhat.license_terms",
        "value": "https://www.redhat.com/en/about/red-hat-end-user-license-agreements#UBI"
      },
      {
        "key": "com.docker.compose.oneoff",
        "value": "False"
      },
      {
        "key": "org.jboss.product.version",
        "value": "17"
      },
      {
        "key": "com.docker.compose.project",
        "value": "compose"
      },
      {
        "key": "com.docker.compose.service",
        "value": "sample-app-1"
      },
      {
        "key": "com.docker.compose.version",
        "value": "1.29.2"
      },
      {
        "key": "io.fabric8.s2i.version.maven",
        "value": "3.8"
      },
      {
        "key": "io.openshift.expose-services",
        "value": ""
      },
      {
        "key": "io.openshift.s2i.destination",
        "value": "/tmp"
      },
      {
        "key": "io.openshift.s2i.scripts-url",
        "value": "image:///usr/local/s2i"
      },
      {
        "key": "com.docker.compose.config-hash",
        "value": "65481a5299a7bca8c8ea19437bce9d0351229d093df59e66ec1fd9c5f694fe2a"
      },
      {
        "key": "org.jboss.product.openjdk.version",
        "value": "17"
      },
      {
        "key": "com.docker.compose.container-number",
        "value": "1"
      },
      {
        "key": "org.jboss.container.deployments-dir",
        "value": "/deployments"
      },
      {
        "key": "com.docker.compose.project.working_dir",
        "value": "/home/work/workspace/cryostat3/compose"
      },
      {
        "key": "com.docker.compose.project.config_files",
        "value": "/home/work/workspace/cryostat3/compose/cryostat.yml,/home/work/workspace/cryostat3/compose/db.yml,/home/work/workspace/cryostat3/compose/sample-apps.yml,/home/work/workspace/cryostat3/compose/no_proxy.yml,/home/work/workspace/cryostat3/compose/s3_no_proxy.yml,/home/work/workspace/cryostat3/compose/s3-localstack.yml"
      }
    ],
    "annotations": {
      "platform": [],
      "cryostat": [
        {
          "key": "HOST",
          "value": "sample-app-1"
        },
        {
          "key": "PORT",
          "value": "9093"
        },
        {
          "key": "REALM",
          "value": "Podman"
        }
      ]
    },
    "agent": false
  }
]