Alright I've got two workarounds for this.
1. If using default Cribl Search "datatype" (dataset settings), then use the below query structure as a workaround to parse through nested json
dataset="OpenlaneCriblS3"
| extend json=parse_json(_raw)
| extend json=parse_json(json._raw)
| extend container_name=json.kubernetes.container_name, namespace_name=json.kubernetes.namespace_name, app_name=json.kubernetes.labels["app_kubernetes_io/name"], pod_name=json.kubernetes.pod_name, level=json.level
2. Change the datatype to Cribl Search _raw Data
then use the below type of query to pull out values from objects
dataset="OpenlaneCriblS3"
| extend json=parse_json(_raw)
| extend container_name=json.kubernetes.container_name, namespace_name=json.kubernetes.namespace_name, app_name=json.kubernetes.labelss"app_kubernetes_io/name"], pod_name=json.kubernetes.pod_name, level=json.level
I found the solution awhile back for this.
It's simple. Sometimes you will have a JSON string nested inside of a JSON string, so you either need to change the "Datatypes" for that "Dataset" to "Cribl Search raw Data" or keep doing "parse_json" till you have parsed out your nested JSON.
If you're using the Cribl Search datatype and have _raw nested inside of _raw, then do the below syntax until you get what you want
| extend json=parse_json(_raw)
| extend json=parse_json(json._raw)
However, it's probably best that you change your datatype to "Cribl Search raw Data" to avoid at least having to do this an extra time so you only need the one | extend json=parse_json(_raw)