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

[8.16] [APM Fix missing error.culprit (#205242) #205263

Merged
merged 1 commit into from
Dec 30, 2024

Conversation

crespocarlos
Copy link
Contributor

Backport

This will backport the following commits from main to 8.16:

Questions ?

Please refer to the Backport tool documentation

fixes [elastic#205240](elastic#205240)

## Summary

Fixes the issue where `error.culprit` is always missing.

<img width="800" alt="image"
src="https://github.com/user-attachments/assets/9dad6797-dd40-4206-b508-daf8d69d653d"
/>

<img width="800" alt="image"
src="https://github.com/user-attachments/assets/6a0ac25a-bc4b-4a26-b126-86eecbe7e769"
/>

### How to test

- Run `simple_trace` synthtrace scenario
- Run the request below
<details>
<summary>POST logs-apm.error-default/_doc</summary>

```
POST logs-apm.error-default/_doc
{

    "container": {
      "id": "80cc20ecab1b57865d7aca0f66ab75a0c6ec2c51f7c53da04a8540215369c359"
    },
    "kubernetes": {
      "node": {
        "name": "ip-192-168-55-136.ec2.internal"
      },
      "pod": {
        "uid": "9bbfe3dc-dace-4638-b8f5-aa6ccf435cbe",
        "name": "otel-demo-green-3-cartservice-5d5ccc86dd-gcxtr"
      },
      "namespace": "otel-demo-green-3"
    },
    "parent": {
      "id": "f39639f56a540e0e"
    },
    "agent": {
      "name": "opentelemetry/dotnet",
      "version": "1.6.0"
    },
    "source": {
      "port": 35136,
      "ip": "::ffff:192.168.50.132"
    },
    "error": {
      "exception": [
        {
          "handled": true,
          "message": "Exception (plain, .NET) without culprit",
          "type": "Grpc.Core.RpcException"
        }
      ],
      "culprit": "culprit msg", // remove to test the N/A scenario
      "id": "60674e9b23c8b06d83889e63ffe82c1c", //change the id on every run
      "stack_trace": "Grpc.Core.RpcException: Status(StatusCode=\"FailedPrecondition\", Detail=\"Can't access cart storage. System.ApplicationException: Wasn't able to connect to redis\n   at cartservice.cartstore.RedisCartStore.EnsureRedisConnected() in /usr/src/app/src/cartstore/RedisCartStore.cs:line 79\n   at cartservice.cartstore.RedisCartStore.EmptyCartAsync(String userId) in /usr/src/app/src/cartstore/RedisCartStore.cs:line 157\")\n   at cartservice.cartstore.RedisCartStore.EmptyCartAsync(String userId) in /usr/src/app/src/cartstore/RedisCartStore.cs:line 166\n   at cartservice.services.CartService.EmptyCart(EmptyCartRequest request, ServerCallContext context) in /usr/src/app/src/services/CartService.cs:line 65",
      "grouping_key": "6082c58afd7fa6838ebc27eef6e04829"
    },
    "message": "Exception (plain, .NET)",
    "url": {
      "path": "/oteldemo.CartService/EmptyCart",
      "original": "http://otel-demo-green-3-cartservice:8080/oteldemo.CartService/EmptyCart",
      "scheme": "http",
      "port": 8080,
      "domain": "otel-demo-green-3-cartservice",
      "full": "http://otel-demo-green-3-cartservice:8080/oteldemo.CartService/EmptyCart"
    },
    "labels": {
      "k8s_pod_ip": "192.168.62.174",
      "k8s_pod_start_time": "2024-12-17T02:55:54Z",
      "service_namespace": "opentelemetry-demo",
      "k8s_deployment_name": "otel-demo-green-3-cartservice"
    },
    "observer": {
      "hostname": "450fbf7ab701",
      "type": "apm-server",
      "version": "8.13.2"
    },
    "trace": {
      "id": "699f6d1039fc873191a1c983790db3a2"
    },
    "@timestamp": "2024-12-30T10:30:00.000Z",
    "data_stream": {
      "namespace": "default",
      "type": "logs",
      "dataset": "apm.error"
    },
    "service": {
      "node": {
        "name": "80cc20ecab1b57865d7aca0f66ab75a0c6ec2c51f7c53da04a8540215369c359"
      },
      "framework": {
        "name": "Microsoft.AspNetCore"
      },
       "name": "synth-node-0",
      "language": {
        "name": "dotnet"
      }
    },
    "host": {
      "hostname": "ip-192-168-55-136.ec2.internal",
      "name": "ip-192-168-55-136.ec2.internal"
    },
    "client": {
      "port": 35136,
      "ip": "::ffff:192.168.50.132"
    },
    "http": {
      "request": {
        "method": "POST"
      },
      "response": {
        "status_code": 200
      },
      "version": "2"
    },
    "event": {
      "agent_id_status": "missing",
      "ingested": "2024-12-18T18:04:22Z"
    },
    "transaction": {
      "id": "f39639f56a540e0e",
      "type": "request",
      "sampled": true
    },
    "user_agent": {
      "original": "grpc-go/1.59.0",
      "name": "Other",
      "device": {
        "name": "Other"
      }
    },
    "span": {
      "id": "f39639f56a540e0e"
    },
    "timestamp": {
      "us": 1704892605838000
    }
  }
```
</details>

(cherry picked from commit 12608c3)

# Conflicts:
#	x-pack/test/api_integration/deployment_agnostic/apis/observability/apm/mobile/errors/group_id_samples.spec.ts
@crespocarlos crespocarlos enabled auto-merge (squash) December 30, 2024 14:22
@botelastic botelastic bot added ci:project-deploy-observability Create an Observability project Team:obs-ux-infra_services Observability Infrastructure & Services User Experience Team labels Dec 30, 2024
@elasticmachine
Copy link
Contributor

Pinging @elastic/obs-ux-infra_services-team (Team:obs-ux-infra_services)

Copy link
Contributor

🤖 GitHub comments

Expand to view the GitHub comments

Just comment with:

  • /oblt-deploy : Deploy a Kibana instance using the Observability test environments.
  • run docs-build : Re-trigger the docs validation. (use unformatted text in the comment!)

@elasticmachine
Copy link
Contributor

elasticmachine commented Dec 30, 2024

💛 Build succeeded, but was flaky

  • Buildkite Build
  • Commit: d9b0d2e
  • Kibana Serverless Image: docker.elastic.co/kibana-ci/kibana-serverless:pr-205263-d9b0d2e7b244

Failed CI Steps

Metrics [docs]

✅ unchanged

History

@crespocarlos crespocarlos merged commit 760f681 into elastic:8.16 Dec 30, 2024
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport ci:project-deploy-observability Create an Observability project Team:obs-ux-infra_services Observability Infrastructure & Services User Experience Team
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants