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.x] [APM Fix missing error.culprit (#205242) #205255

Merged
merged 1 commit into from
Dec 30, 2024

Conversation

kibanamachine
Copy link
Contributor

Backport

This will backport the following commits from main to 8.x:

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)
@kibanamachine kibanamachine enabled auto-merge (squash) December 30, 2024 12:56
@botelastic botelastic bot added the Team:obs-ux-infra_services Observability Infrastructure & Services User Experience Team label Dec 30, 2024
@elasticmachine
Copy link
Contributor

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

@kibanamachine kibanamachine merged commit 576c4ab into elastic:8.x Dec 30, 2024
13 checks passed
@elasticmachine
Copy link
Contributor

💚 Build Succeeded

Metrics [docs]

✅ unchanged

cc @crespocarlos

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport 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