[{"data":1,"prerenderedAt":4561},["ShallowReactive",2],{"\u002Fguides\u002Fopentelemetry-k8seventsreceiver-navigation":3,"\u002Fguides\u002Fopentelemetry-k8seventsreceiver":196,"$Vs9m8Q-E34":4464},[4,8,12,16,20,24,28,32,36,40,44,48,52,56,60,64,68,72,76,80,84,88,92,96,100,104,108,112,116,120,124,128,132,136,140,144,148,152,156,160,164,168,172,176,180,184,188,192],{"title":5,"path":6,"stem":7},"Guides","\u002Fguides","guides\u002Findex",{"title":9,"path":10,"stem":11},"OpenTelemetry Beego monitoring [otelbeego]","\u002Fguides\u002Fopentelemetry-beego","guides\u002Fopentelemetry-beego",{"title":13,"path":14,"stem":15},"OpenTelemetry Celery Instrumentation Guide","\u002Fguides\u002Fopentelemetry-celery","guides\u002Fopentelemetry-celery",{"title":17,"path":18,"stem":19},"Instrumenting Go database\u002Fsql with OpenTelemetry [otelsql]","\u002Fguides\u002Fopentelemetry-database-sql","guides\u002Fopentelemetry-database-sql",{"title":21,"path":22,"stem":23},"Django OpenTelemetry Instrumentation and Monitoring","\u002Fguides\u002Fopentelemetry-django","guides\u002Fopentelemetry-django",{"title":25,"path":26,"stem":27},"OpenTelemetry Docker Monitoring with Collector and Docker Stats","\u002Fguides\u002Fopentelemetry-docker","guides\u002Fopentelemetry-docker",{"title":29,"path":30,"stem":31},"OpenTelemetry Echo by Labstack [otelecho]","\u002Fguides\u002Fopentelemetry-echo","guides\u002Fopentelemetry-echo",{"title":33,"path":34,"stem":35},"OpenTelemetry Go Ent monitoring [otelent]","\u002Fguides\u002Fopentelemetry-ent","guides\u002Fopentelemetry-ent",{"title":37,"path":38,"stem":39},"OpenTelemetry Express.js instrumentation","\u002Fguides\u002Fopentelemetry-express","guides\u002Fopentelemetry-express",{"title":41,"path":42,"stem":43},"OpenTelemetry Falcon Instrumentation and Monitoring","\u002Fguides\u002Fopentelemetry-falcon","guides\u002Fopentelemetry-falcon",{"title":45,"path":46,"stem":47},"OpenTelemetry FastAPI Instrumentation and Monitoring","\u002Fguides\u002Fopentelemetry-fastapi","guides\u002Fopentelemetry-fastapi",{"title":49,"path":50,"stem":51},"OpenTelemetry Filelog Receiver","\u002Fguides\u002Fopentelemetry-filelog-receiver","guides\u002Fopentelemetry-filelog-receiver",{"title":53,"path":54,"stem":55},"OpenTelemetry Flask Instrumentation and Monitoring","\u002Fguides\u002Fopentelemetry-flask","guides\u002Fopentelemetry-flask",{"title":57,"path":58,"stem":59},"OpenTelemetry Gin Monitoring [otelgin]","\u002Fguides\u002Fopentelemetry-gin","guides\u002Fopentelemetry-gin",{"title":61,"path":62,"stem":63},"OpenTelemetry Golang gRPC monitoring [otelgrpc]","\u002Fguides\u002Fopentelemetry-go-grpc","guides\u002Fopentelemetry-go-grpc",{"title":65,"path":66,"stem":67},"OpenTelemetry Go AWS Lambda Instrumentation","\u002Fguides\u002Fopentelemetry-go-lambda","guides\u002Fopentelemetry-go-lambda",{"title":69,"path":70,"stem":71},"OpenTelemetry Go-Zero monitoring [otelzero]","\u002Fguides\u002Fopentelemetry-go-zero","guides\u002Fopentelemetry-go-zero",{"title":73,"path":74,"stem":75},"OpenTelemetry Gorilla Mux monitoring [otelmux]","\u002Fguides\u002Fopentelemetry-gorilla-mux","guides\u002Fopentelemetry-gorilla-mux",{"title":77,"path":78,"stem":79},"OpenTelemetry GORM monitoring [otelgorm]","\u002Fguides\u002Fopentelemetry-gorm","guides\u002Fopentelemetry-gorm",{"title":81,"path":82,"stem":83},"OpenTelemetry HTTPcheck Receiver","\u002Fguides\u002Fopentelemetry-httpcheck","guides\u002Fopentelemetry-httpcheck",{"title":85,"path":86,"stem":87},"OpenTelemetry Kubernetes Events Receiver [k8seventsreceiver]","\u002Fguides\u002Fopentelemetry-k8seventsreceiver","guides\u002Fopentelemetry-k8seventsreceiver",{"title":89,"path":90,"stem":91},"Kafka Monitoring with OpenTelemetry Collector","\u002Fguides\u002Fopentelemetry-kafka","guides\u002Fopentelemetry-kafka",{"title":93,"path":94,"stem":95},"OpenTelemetry Integration for Laravel: Full Guide","\u002Fguides\u002Fopentelemetry-laravel","guides\u002Fopentelemetry-laravel",{"title":97,"path":98,"stem":99},"OpenTelemetry Log4j logs [Java]","\u002Fguides\u002Fopentelemetry-log4j","guides\u002Fopentelemetry-log4j",{"title":101,"path":102,"stem":103},"OpenTelemetry Logback logging [Java]","\u002Fguides\u002Fopentelemetry-logback","guides\u002Fopentelemetry-logback",{"title":105,"path":106,"stem":107},"OpenTelemetry Logrus logs [otellogrus]","\u002Fguides\u002Fopentelemetry-logrus","guides\u002Fopentelemetry-logrus",{"title":109,"path":110,"stem":111},"OpenTelemetry MySQL Monitoring [step by step]","\u002Fguides\u002Fopentelemetry-mysql","guides\u002Fopentelemetry-mysql",{"title":113,"path":114,"stem":115},"OpenTelemetry Go net\u002Fhttp Instrumentation [otelhttp]","\u002Fguides\u002Fopentelemetry-net-http","guides\u002Fopentelemetry-net-http",{"title":117,"path":118,"stem":119},"OpenTelemetry Next.js Instrumentation","\u002Fguides\u002Fopentelemetry-nextjs","guides\u002Fopentelemetry-nextjs",{"title":121,"path":122,"stem":123},"OpenTelemetry NGINX Instrumentation","\u002Fguides\u002Fopentelemetry-nginx","guides\u002Fopentelemetry-nginx",{"title":125,"path":126,"stem":127},"OpenTelemetry Node.js AWS Lambda","\u002Fguides\u002Fopentelemetry-node-lambda","guides\u002Fopentelemetry-node-lambda",{"title":129,"path":130,"stem":131},"OpenTelemetry Phoenix monitoring","\u002Fguides\u002Fopentelemetry-phoenix","guides\u002Fopentelemetry-phoenix",{"title":133,"path":134,"stem":135},"PHP-FPM Monitoring with OpenTelemetry: Metrics, Alerts, and Dashboards","\u002Fguides\u002Fopentelemetry-php-fpm","guides\u002Fopentelemetry-php-fpm",{"title":137,"path":138,"stem":139},"OpenTelemetry PostgreSQL Monitoring","\u002Fguides\u002Fopentelemetry-postgresql","guides\u002Fopentelemetry-postgresql",{"title":141,"path":142,"stem":143},"OpenTelemetry Pyramid: Instrumentation and Monitoring Guide","\u002Fguides\u002Fopentelemetry-pyramid","guides\u002Fopentelemetry-pyramid",{"title":145,"path":146,"stem":147},"OpenTelemetry Quarkus Instrumentation [Java]","\u002Fguides\u002Fopentelemetry-quarkus","guides\u002Fopentelemetry-quarkus",{"title":149,"path":150,"stem":151},"OpenTelemetry RabbitMQ Monitoring Guide","\u002Fguides\u002Fopentelemetry-rabbitmq","guides\u002Fopentelemetry-rabbitmq",{"title":153,"path":154,"stem":155},"Ruby on Rails Application Monitoring with OpenTelemetry","\u002Fguides\u002Fopentelemetry-rails","guides\u002Fopentelemetry-rails",{"title":157,"path":158,"stem":159},"Monitor Redis with OpenTelemetry Collector","\u002Fguides\u002Fopentelemetry-redis","guides\u002Fopentelemetry-redis",{"title":161,"path":162,"stem":163},"OpenTelemetry Sinatra monitoring","\u002Fguides\u002Fopentelemetry-sinatra","guides\u002Fopentelemetry-sinatra",{"title":165,"path":166,"stem":167},"OpenTelemetry Slim Framework: Instrumentation and Monitoring Guide","\u002Fguides\u002Fopentelemetry-slim","guides\u002Fopentelemetry-slim",{"title":169,"path":170,"stem":171},"OpenTelemetry Slog [otelslog]: Golang Bridge Setup & Examples","\u002Fguides\u002Fopentelemetry-slog","guides\u002Fopentelemetry-slog",{"title":173,"path":174,"stem":175},"OpenTelemetry for Spring Boot: Guide with Examples","\u002Fguides\u002Fopentelemetry-spring-boot","guides\u002Fopentelemetry-spring-boot",{"title":177,"path":178,"stem":179},"OpenTelemetry SQLAlchemy monitoring","\u002Fguides\u002Fopentelemetry-sqlalchemy","guides\u002Fopentelemetry-sqlalchemy",{"title":181,"path":182,"stem":183},"OpenTelemetry Integration for Symfony: Full Guide","\u002Fguides\u002Fopentelemetry-symfony","guides\u002Fopentelemetry-symfony",{"title":185,"path":186,"stem":187},"OpenTelemetry Syslog Receiver","\u002Fguides\u002Fopentelemetry-syslog-receiver","guides\u002Fopentelemetry-syslog-receiver",{"title":189,"path":190,"stem":191},"OpenTelemetry Tomcat: Instrumentation and Monitoring Guide","\u002Fguides\u002Fopentelemetry-tomcat","guides\u002Fopentelemetry-tomcat",{"title":193,"path":194,"stem":195},"OpenTelemetry Zap [otelzap]: Golang Logging Bridge Setup & Examples","\u002Fguides\u002Fopentelemetry-zap","guides\u002Fopentelemetry-zap",{"page":197,"surround":4459},{"id":198,"title":85,"author":199,"author_site":200,"body":201,"date":4446,"description":4447,"extension":4448,"image":4449,"meta":4450,"navigation":577,"path":86,"seo":4457,"stem":87,"__hash__":4458},"guides\u002Fguides\u002Fopentelemetry-k8seventsreceiver.md","abandurchin",null,{"type":202,"value":203,"toc":4404},"minimark",[204,226,233,241,244,249,256,295,303,306,322,328,333,437,449,453,460,496,499,503,517,531,534,725,737,740,747,1364,1367,1417,1420,1484,1488,1491,1527,1531,1534,1540,1662,1668,1772,1777,1818,1822,1825,1999,2002,2006,2009,2051,2055,2058,2100,2110,2114,2117,2156,2160,2164,2167,2281,2285,2288,2344,2348,2351,2580,2598,2611,2614,2844,2848,2852,2855,3029,3033,3214,3222,3226,3229,3467,3471,3475,3480,3569,3578,3583,3615,3620,3649,3652,3684,3689,3760,3764,3770,3776,3871,3875,3880,3886,3890,3899,3908,3933,3937,4077,4081,4084,4088,4127,4131,4174,4178,4220,4224,4266,4270,4328,4341,4345,4348,4351,4400],[205,206,207],"blockquote",{},[208,209,210,211,215,216,221,222],"p",{},"📋 ",[212,213,214],"strong",{},"Part of the OpenTelemetry ecosystem:"," The Kubernetes Events Receiver is a component of the ",[217,218,220],"a",{"href":219},"\u002Fopentelemetry\u002Fcollector","OpenTelemetry Collector"," that watches the Kubernetes API and converts cluster events into OpenTelemetry log records. New to OpenTelemetry? Start with ",[217,223,225],{"href":224},"\u002Fopentelemetry","What is OpenTelemetry?",[208,227,228,229,232],{},"When a pod crashes, an image fails to pull, or a node runs out of memory, Kubernetes creates an ",[212,230,231],{},"Event"," object. These events are the first signal that something is wrong — but by default they're only retained for one hour and disappear silently.",[208,234,235,236,240],{},"The OpenTelemetry Kubernetes Events Receiver captures every cluster event the moment it happens, converts it into a structured ",[217,237,239],{"href":238},"\u002Fopentelemetry\u002Flogs","OpenTelemetry log record",", and forwards it to your observability backend for long-term storage and alerting.",[208,242,243],{},"This guide covers everything from a basic setup to production-grade filtering, RBAC configuration, and integration with the rest of your Kubernetes observability stack.",[245,246,248],"h2",{"id":247},"what-are-kubernetes-events","What are Kubernetes Events?",[208,250,251,252,255],{},"Kubernetes Events are API objects that record noteworthy occurrences in the cluster — not to be confused with container stdout\u002Fstderr logs (those are handled by the ",[217,253,254],{"href":50},"Filelog Receiver",").",[257,258,263],"pre",{"className":259,"code":260,"language":261,"meta":262,"style":262},"language-bash shiki shiki-themes github-light","kubectl get events -n default --sort-by='.lastTimestamp'\n","bash","",[264,265,266],"code",{"__ignoreMap":262},[267,268,271,275,279,282,286,289,292],"span",{"class":269,"line":270},"line",1,[267,272,274],{"class":273},"s7eDp","kubectl",[267,276,278],{"class":277},"sYBdl"," get",[267,280,281],{"class":277}," events",[267,283,285],{"class":284},"sYu0t"," -n",[267,287,288],{"class":277}," default",[267,290,291],{"class":284}," --sort-by=",[267,293,294],{"class":277},"'.lastTimestamp'\n",[257,296,301],{"className":297,"code":299,"language":300},[298],"language-text","LAST SEEN   TYPE      REASON              OBJECT              MESSAGE\n2m          Warning   BackOff             pod\u002Fapi-7d9f-xk2p   Back-off restarting failed container\n5m          Normal    Pulled              pod\u002Fapi-7d9f-xk2p   Successfully pulled image \"app:1.2.3\"\n8m          Warning   FailedScheduling    pod\u002Fworker-abc      0\u002F3 nodes available: insufficient memory\n12m         Normal    Scheduled           pod\u002Fapi-7d9f-xk2p   Successfully assigned default\u002Fapi to node-2\n","text",[264,302,299],{"__ignoreMap":262},[208,304,305],{},"Events answer questions like:",[307,308,309,313,316,319],"ul",{},[310,311,312],"li",{},"Why did this pod restart 47 times?",[310,314,315],{},"When exactly did the node become unschedulable?",[310,317,318],{},"Which image pull failed and why?",[310,320,321],{},"What happened in the cluster during this outage?",[208,323,324,327],{},[212,325,326],{},"The problem:"," Kubernetes deletes events after 1 hour by default. The Events Receiver captures them continuously and ships them to long-term storage.",[329,330,332],"h3",{"id":331},"events-vs-container-logs","Events vs Container Logs",[334,335,336,355],"table",{},[337,338,339],"thead",{},[340,341,342,345,350],"tr",{},[343,344],"th",{},[343,346,347],{},[212,348,349],{},"Kubernetes Events",[343,351,352],{},[212,353,354],{},"Container Logs",[356,357,358,372,385,398,420],"tbody",{},[340,359,360,366,369],{},[361,362,363],"td",{},[212,364,365],{},"Source",[361,367,368],{},"Kubernetes API",[361,370,371],{},"Container stdout\u002Fstderr",[340,373,374,379,382],{},[361,375,376],{},[212,377,378],{},"Content",[361,380,381],{},"Cluster lifecycle (scheduling, restarts, OOM)",[361,383,384],{},"Application output",[340,386,387,392,395],{},[361,388,389],{},[212,390,391],{},"Retention",[361,393,394],{},"1 hour by default",[361,396,397],{},"Until log rotation",[340,399,400,405,410],{},[361,401,402],{},[212,403,404],{},"Receiver",[361,406,407],{},[264,408,409],{},"k8s_events",[361,411,412,415,416,419],{},[264,413,414],{},"filelog"," with ",[264,417,418],{},"container"," operator",[340,421,422,427,430],{},[361,423,424],{},[212,425,426],{},"Access",[361,428,429],{},"Kubernetes API watch",[361,431,432,433,436],{},"File on node (",[264,434,435],{},"\u002Fvar\u002Flog\u002Fpods\u002F",")",[208,438,439,440,443,444,448],{},"For complete Kubernetes observability you need ",[212,441,442],{},"both"," — use this guide for cluster events and the ",[217,445,447],{"href":446},"\u002Fguides\u002Fopentelemetry-filelog-receiver#kubernetes-log-collection","Filelog Receiver guide"," for container logs.",[245,450,452],{"id":451},"how-the-receiver-works","How the Receiver Works",[208,454,455,456,459],{},"The receiver connects to the Kubernetes API server and opens a ",[212,457,458],{},"watch"," — a persistent HTTP stream that delivers event updates in real time:",[257,461,465],{"className":462,"code":463,"language":464,"meta":262,"style":262},"language-mermaid shiki shiki-themes github-light","flowchart LR\n  A[Kubernetes API Server] -->|Watch stream| B[k8s_events Receiver]\n  B --> C[Convert to Log Records]\n  C --> D[Collector Pipeline]\n  D --> E[(Backend)]\n","mermaid",[264,466,467,472,478,484,490],{"__ignoreMap":262},[267,468,469],{"class":269,"line":270},[267,470,471],{},"flowchart LR\n",[267,473,475],{"class":269,"line":474},2,[267,476,477],{},"  A[Kubernetes API Server] -->|Watch stream| B[k8s_events Receiver]\n",[267,479,481],{"class":269,"line":480},3,[267,482,483],{},"  B --> C[Convert to Log Records]\n",[267,485,487],{"class":269,"line":486},4,[267,488,489],{},"  C --> D[Collector Pipeline]\n",[267,491,493],{"class":269,"line":492},5,[267,494,495],{},"  D --> E[(Backend)]\n",[208,497,498],{},"On startup it lists existing events, then watches for new ones. If the connection drops, it automatically reconnects and resumes from the last resource version — no events are missed.",[245,500,502],{"id":501},"quick-start","Quick Start",[205,504,505],{},[208,506,507,508,511,512,516],{},"📚 ",[212,509,510],{},"Prerequisites",": You need the OpenTelemetry Collector running inside the cluster with appropriate RBAC permissions. See ",[217,513,515],{"href":514},"#rbac-setup","RBAC Setup"," below.",[205,518,519],{},[208,520,521,522,525,526,530],{},"💡 ",[212,523,524],{},"Backend Configuration:"," Examples in this guide use Uptrace as the observability backend. OpenTelemetry is vendor-neutral — you can send data to Grafana Cloud, Datadog, or any OTLP-compatible platform. See ",[217,527,529],{"href":528},"#backend-examples","backend examples"," at the end of this guide.",[208,532,533],{},"Minimal configuration:",[257,535,539],{"className":536,"code":537,"language":538,"meta":262,"style":262},"language-yaml shiki shiki-themes github-light","receivers:\n  k8s_events:\n    auth_type: serviceAccount   # Use pod's ServiceAccount (in-cluster)\n\nprocessors:\n  batch:\n    timeout: 10s\n\nexporters:\n  otlp\u002Fuptrace:\n    endpoint: api.uptrace.dev:4317\n    headers:\n      uptrace-dsn: 'https:\u002F\u002F\u003Csecret>@api.uptrace.dev?grpc=4317'\n\nservice:\n  pipelines:\n    logs:\n      receivers: [k8s_events]\n      processors: [batch]\n      exporters: [otlp\u002Fuptrace]\n","yaml",[264,540,541,551,558,573,579,586,594,605,610,618,626,637,645,656,661,669,677,685,699,712],{"__ignoreMap":262},[267,542,543,547],{"class":269,"line":270},[267,544,546],{"class":545},"shJU0","receivers",[267,548,550],{"class":549},"sgsFI",":\n",[267,552,553,556],{"class":269,"line":474},[267,554,555],{"class":545},"  k8s_events",[267,557,550],{"class":549},[267,559,560,563,566,569],{"class":269,"line":480},[267,561,562],{"class":545},"    auth_type",[267,564,565],{"class":549},": ",[267,567,568],{"class":277},"serviceAccount",[267,570,572],{"class":571},"sAwPA","   # Use pod's ServiceAccount (in-cluster)\n",[267,574,575],{"class":269,"line":486},[267,576,578],{"emptyLinePlaceholder":577},true,"\n",[267,580,581,584],{"class":269,"line":492},[267,582,583],{"class":545},"processors",[267,585,550],{"class":549},[267,587,589,592],{"class":269,"line":588},6,[267,590,591],{"class":545},"  batch",[267,593,550],{"class":549},[267,595,597,600,602],{"class":269,"line":596},7,[267,598,599],{"class":545},"    timeout",[267,601,565],{"class":549},[267,603,604],{"class":277},"10s\n",[267,606,608],{"class":269,"line":607},8,[267,609,578],{"emptyLinePlaceholder":577},[267,611,613,616],{"class":269,"line":612},9,[267,614,615],{"class":545},"exporters",[267,617,550],{"class":549},[267,619,621,624],{"class":269,"line":620},10,[267,622,623],{"class":545},"  otlp\u002Fuptrace",[267,625,550],{"class":549},[267,627,629,632,634],{"class":269,"line":628},11,[267,630,631],{"class":545},"    endpoint",[267,633,565],{"class":549},[267,635,636],{"class":277},"api.uptrace.dev:4317\n",[267,638,640,643],{"class":269,"line":639},12,[267,641,642],{"class":545},"    headers",[267,644,550],{"class":549},[267,646,648,651,653],{"class":269,"line":647},13,[267,649,650],{"class":545},"      uptrace-dsn",[267,652,565],{"class":549},[267,654,655],{"class":277},"'https:\u002F\u002F\u003Csecret>@api.uptrace.dev?grpc=4317'\n",[267,657,659],{"class":269,"line":658},14,[267,660,578],{"emptyLinePlaceholder":577},[267,662,664,667],{"class":269,"line":663},15,[267,665,666],{"class":545},"service",[267,668,550],{"class":549},[267,670,672,675],{"class":269,"line":671},16,[267,673,674],{"class":545},"  pipelines",[267,676,550],{"class":549},[267,678,680,683],{"class":269,"line":679},17,[267,681,682],{"class":545},"    logs",[267,684,550],{"class":549},[267,686,688,691,694,696],{"class":269,"line":687},18,[267,689,690],{"class":545},"      receivers",[267,692,693],{"class":549},": [",[267,695,409],{"class":277},[267,697,698],{"class":549},"]\n",[267,700,702,705,707,710],{"class":269,"line":701},19,[267,703,704],{"class":545},"      processors",[267,706,693],{"class":549},[267,708,709],{"class":277},"batch",[267,711,698],{"class":549},[267,713,715,718,720,723],{"class":269,"line":714},20,[267,716,717],{"class":545},"      exporters",[267,719,693],{"class":549},[267,721,722],{"class":277},"otlp\u002Fuptrace",[267,724,698],{"class":549},[208,726,727,728,731,732,736],{},"This collects events from ",[212,729,730],{},"all namespaces",". For namespace filtering, see ",[217,733,735],{"href":734},"#filtering-events","Filtering Events",".",[245,738,515],{"id":739},"rbac-setup",[208,741,742,743,746],{},"The Collector needs read access to events ",[212,744,745],{},"and"," the objects they reference (pods, nodes, deployments, etc.) so it can resolve metadata. Create the required resources before deploying the Collector:",[257,748,750],{"className":536,"code":749,"language":538,"meta":262,"style":262},"# 1. ServiceAccount for the Collector pod\napiVersion: v1\nkind: ServiceAccount\nmetadata:\n  name: otel-collector\n  namespace: monitoring\n\n---\n\n# 2. ClusterRole — events plus the objects they reference\napiVersion: rbac.authorization.k8s.io\u002Fv1\nkind: ClusterRole\nmetadata:\n  name: otel-collector-events\nrules:\n  - apiGroups: ['']\n    resources:\n      - events\n      - namespaces\n      - namespaces\u002Fstatus\n      - nodes\n      - nodes\u002Fspec\n      - pods\n      - pods\u002Fstatus\n      - replicationcontrollers\n      - replicationcontrollers\u002Fstatus\n      - resourcequotas\n      - services\n    verbs: ['get', 'list', 'watch']\n  - apiGroups: ['apps']\n    resources:\n      - daemonsets\n      - deployments\n      - replicasets\n      - statefulsets\n    verbs: ['get', 'list', 'watch']\n  - apiGroups: ['extensions']\n    resources:\n      - daemonsets\n      - deployments\n      - replicasets\n    verbs: ['get', 'list', 'watch']\n  - apiGroups: ['batch']\n    resources:\n      - jobs\n      - cronjobs\n    verbs: ['get', 'list', 'watch']\n  - apiGroups: ['autoscaling']\n    resources:\n      - horizontalpodautoscalers\n    verbs: ['get', 'list', 'watch']\n\n---\n\n# 3. Bind the role to the ServiceAccount\napiVersion: rbac.authorization.k8s.io\u002Fv1\nkind: ClusterRoleBinding\nmetadata:\n  name: otel-collector-events\nsubjects:\n  - kind: ServiceAccount\n    name: otel-collector\n    namespace: monitoring\nroleRef:\n  kind: ClusterRole\n  name: otel-collector-events\n  apiGroup: rbac.authorization.k8s.io\n",[264,751,752,757,767,777,784,794,804,808,813,817,822,831,840,846,855,862,877,884,892,899,906,914,922,930,938,946,954,962,970,994,1008,1015,1023,1031,1039,1047,1066,1080,1087,1094,1101,1108,1127,1141,1148,1156,1164,1183,1197,1204,1212,1231,1236,1241,1246,1252,1261,1271,1278,1287,1295,1306,1316,1326,1334,1344,1353],{"__ignoreMap":262},[267,753,754],{"class":269,"line":270},[267,755,756],{"class":571},"# 1. ServiceAccount for the Collector pod\n",[267,758,759,762,764],{"class":269,"line":474},[267,760,761],{"class":545},"apiVersion",[267,763,565],{"class":549},[267,765,766],{"class":277},"v1\n",[267,768,769,772,774],{"class":269,"line":480},[267,770,771],{"class":545},"kind",[267,773,565],{"class":549},[267,775,776],{"class":277},"ServiceAccount\n",[267,778,779,782],{"class":269,"line":486},[267,780,781],{"class":545},"metadata",[267,783,550],{"class":549},[267,785,786,789,791],{"class":269,"line":492},[267,787,788],{"class":545},"  name",[267,790,565],{"class":549},[267,792,793],{"class":277},"otel-collector\n",[267,795,796,799,801],{"class":269,"line":588},[267,797,798],{"class":545},"  namespace",[267,800,565],{"class":549},[267,802,803],{"class":277},"monitoring\n",[267,805,806],{"class":269,"line":596},[267,807,578],{"emptyLinePlaceholder":577},[267,809,810],{"class":269,"line":607},[267,811,812],{"class":273},"---\n",[267,814,815],{"class":269,"line":612},[267,816,578],{"emptyLinePlaceholder":577},[267,818,819],{"class":269,"line":620},[267,820,821],{"class":571},"# 2. ClusterRole — events plus the objects they reference\n",[267,823,824,826,828],{"class":269,"line":628},[267,825,761],{"class":545},[267,827,565],{"class":549},[267,829,830],{"class":277},"rbac.authorization.k8s.io\u002Fv1\n",[267,832,833,835,837],{"class":269,"line":639},[267,834,771],{"class":545},[267,836,565],{"class":549},[267,838,839],{"class":277},"ClusterRole\n",[267,841,842,844],{"class":269,"line":647},[267,843,781],{"class":545},[267,845,550],{"class":549},[267,847,848,850,852],{"class":269,"line":658},[267,849,788],{"class":545},[267,851,565],{"class":549},[267,853,854],{"class":277},"otel-collector-events\n",[267,856,857,860],{"class":269,"line":663},[267,858,859],{"class":545},"rules",[267,861,550],{"class":549},[267,863,864,867,870,872,875],{"class":269,"line":671},[267,865,866],{"class":549},"  - ",[267,868,869],{"class":545},"apiGroups",[267,871,693],{"class":549},[267,873,874],{"class":277},"''",[267,876,698],{"class":549},[267,878,879,882],{"class":269,"line":679},[267,880,881],{"class":545},"    resources",[267,883,550],{"class":549},[267,885,886,889],{"class":269,"line":687},[267,887,888],{"class":549},"      - ",[267,890,891],{"class":277},"events\n",[267,893,894,896],{"class":269,"line":701},[267,895,888],{"class":549},[267,897,898],{"class":277},"namespaces\n",[267,900,901,903],{"class":269,"line":714},[267,902,888],{"class":549},[267,904,905],{"class":277},"namespaces\u002Fstatus\n",[267,907,909,911],{"class":269,"line":908},21,[267,910,888],{"class":549},[267,912,913],{"class":277},"nodes\n",[267,915,917,919],{"class":269,"line":916},22,[267,918,888],{"class":549},[267,920,921],{"class":277},"nodes\u002Fspec\n",[267,923,925,927],{"class":269,"line":924},23,[267,926,888],{"class":549},[267,928,929],{"class":277},"pods\n",[267,931,933,935],{"class":269,"line":932},24,[267,934,888],{"class":549},[267,936,937],{"class":277},"pods\u002Fstatus\n",[267,939,941,943],{"class":269,"line":940},25,[267,942,888],{"class":549},[267,944,945],{"class":277},"replicationcontrollers\n",[267,947,949,951],{"class":269,"line":948},26,[267,950,888],{"class":549},[267,952,953],{"class":277},"replicationcontrollers\u002Fstatus\n",[267,955,957,959],{"class":269,"line":956},27,[267,958,888],{"class":549},[267,960,961],{"class":277},"resourcequotas\n",[267,963,965,967],{"class":269,"line":964},28,[267,966,888],{"class":549},[267,968,969],{"class":277},"services\n",[267,971,973,976,978,981,984,987,989,992],{"class":269,"line":972},29,[267,974,975],{"class":545},"    verbs",[267,977,693],{"class":549},[267,979,980],{"class":277},"'get'",[267,982,983],{"class":549},", ",[267,985,986],{"class":277},"'list'",[267,988,983],{"class":549},[267,990,991],{"class":277},"'watch'",[267,993,698],{"class":549},[267,995,997,999,1001,1003,1006],{"class":269,"line":996},30,[267,998,866],{"class":549},[267,1000,869],{"class":545},[267,1002,693],{"class":549},[267,1004,1005],{"class":277},"'apps'",[267,1007,698],{"class":549},[267,1009,1011,1013],{"class":269,"line":1010},31,[267,1012,881],{"class":545},[267,1014,550],{"class":549},[267,1016,1018,1020],{"class":269,"line":1017},32,[267,1019,888],{"class":549},[267,1021,1022],{"class":277},"daemonsets\n",[267,1024,1026,1028],{"class":269,"line":1025},33,[267,1027,888],{"class":549},[267,1029,1030],{"class":277},"deployments\n",[267,1032,1034,1036],{"class":269,"line":1033},34,[267,1035,888],{"class":549},[267,1037,1038],{"class":277},"replicasets\n",[267,1040,1042,1044],{"class":269,"line":1041},35,[267,1043,888],{"class":549},[267,1045,1046],{"class":277},"statefulsets\n",[267,1048,1050,1052,1054,1056,1058,1060,1062,1064],{"class":269,"line":1049},36,[267,1051,975],{"class":545},[267,1053,693],{"class":549},[267,1055,980],{"class":277},[267,1057,983],{"class":549},[267,1059,986],{"class":277},[267,1061,983],{"class":549},[267,1063,991],{"class":277},[267,1065,698],{"class":549},[267,1067,1069,1071,1073,1075,1078],{"class":269,"line":1068},37,[267,1070,866],{"class":549},[267,1072,869],{"class":545},[267,1074,693],{"class":549},[267,1076,1077],{"class":277},"'extensions'",[267,1079,698],{"class":549},[267,1081,1083,1085],{"class":269,"line":1082},38,[267,1084,881],{"class":545},[267,1086,550],{"class":549},[267,1088,1090,1092],{"class":269,"line":1089},39,[267,1091,888],{"class":549},[267,1093,1022],{"class":277},[267,1095,1097,1099],{"class":269,"line":1096},40,[267,1098,888],{"class":549},[267,1100,1030],{"class":277},[267,1102,1104,1106],{"class":269,"line":1103},41,[267,1105,888],{"class":549},[267,1107,1038],{"class":277},[267,1109,1111,1113,1115,1117,1119,1121,1123,1125],{"class":269,"line":1110},42,[267,1112,975],{"class":545},[267,1114,693],{"class":549},[267,1116,980],{"class":277},[267,1118,983],{"class":549},[267,1120,986],{"class":277},[267,1122,983],{"class":549},[267,1124,991],{"class":277},[267,1126,698],{"class":549},[267,1128,1130,1132,1134,1136,1139],{"class":269,"line":1129},43,[267,1131,866],{"class":549},[267,1133,869],{"class":545},[267,1135,693],{"class":549},[267,1137,1138],{"class":277},"'batch'",[267,1140,698],{"class":549},[267,1142,1144,1146],{"class":269,"line":1143},44,[267,1145,881],{"class":545},[267,1147,550],{"class":549},[267,1149,1151,1153],{"class":269,"line":1150},45,[267,1152,888],{"class":549},[267,1154,1155],{"class":277},"jobs\n",[267,1157,1159,1161],{"class":269,"line":1158},46,[267,1160,888],{"class":549},[267,1162,1163],{"class":277},"cronjobs\n",[267,1165,1167,1169,1171,1173,1175,1177,1179,1181],{"class":269,"line":1166},47,[267,1168,975],{"class":545},[267,1170,693],{"class":549},[267,1172,980],{"class":277},[267,1174,983],{"class":549},[267,1176,986],{"class":277},[267,1178,983],{"class":549},[267,1180,991],{"class":277},[267,1182,698],{"class":549},[267,1184,1186,1188,1190,1192,1195],{"class":269,"line":1185},48,[267,1187,866],{"class":549},[267,1189,869],{"class":545},[267,1191,693],{"class":549},[267,1193,1194],{"class":277},"'autoscaling'",[267,1196,698],{"class":549},[267,1198,1200,1202],{"class":269,"line":1199},49,[267,1201,881],{"class":545},[267,1203,550],{"class":549},[267,1205,1207,1209],{"class":269,"line":1206},50,[267,1208,888],{"class":549},[267,1210,1211],{"class":277},"horizontalpodautoscalers\n",[267,1213,1215,1217,1219,1221,1223,1225,1227,1229],{"class":269,"line":1214},51,[267,1216,975],{"class":545},[267,1218,693],{"class":549},[267,1220,980],{"class":277},[267,1222,983],{"class":549},[267,1224,986],{"class":277},[267,1226,983],{"class":549},[267,1228,991],{"class":277},[267,1230,698],{"class":549},[267,1232,1234],{"class":269,"line":1233},52,[267,1235,578],{"emptyLinePlaceholder":577},[267,1237,1239],{"class":269,"line":1238},53,[267,1240,812],{"class":273},[267,1242,1244],{"class":269,"line":1243},54,[267,1245,578],{"emptyLinePlaceholder":577},[267,1247,1249],{"class":269,"line":1248},55,[267,1250,1251],{"class":571},"# 3. Bind the role to the ServiceAccount\n",[267,1253,1255,1257,1259],{"class":269,"line":1254},56,[267,1256,761],{"class":545},[267,1258,565],{"class":549},[267,1260,830],{"class":277},[267,1262,1264,1266,1268],{"class":269,"line":1263},57,[267,1265,771],{"class":545},[267,1267,565],{"class":549},[267,1269,1270],{"class":277},"ClusterRoleBinding\n",[267,1272,1274,1276],{"class":269,"line":1273},58,[267,1275,781],{"class":545},[267,1277,550],{"class":549},[267,1279,1281,1283,1285],{"class":269,"line":1280},59,[267,1282,788],{"class":545},[267,1284,565],{"class":549},[267,1286,854],{"class":277},[267,1288,1290,1293],{"class":269,"line":1289},60,[267,1291,1292],{"class":545},"subjects",[267,1294,550],{"class":549},[267,1296,1298,1300,1302,1304],{"class":269,"line":1297},61,[267,1299,866],{"class":549},[267,1301,771],{"class":545},[267,1303,565],{"class":549},[267,1305,776],{"class":277},[267,1307,1309,1312,1314],{"class":269,"line":1308},62,[267,1310,1311],{"class":545},"    name",[267,1313,565],{"class":549},[267,1315,793],{"class":277},[267,1317,1319,1322,1324],{"class":269,"line":1318},63,[267,1320,1321],{"class":545},"    namespace",[267,1323,565],{"class":549},[267,1325,803],{"class":277},[267,1327,1329,1332],{"class":269,"line":1328},64,[267,1330,1331],{"class":545},"roleRef",[267,1333,550],{"class":549},[267,1335,1337,1340,1342],{"class":269,"line":1336},65,[267,1338,1339],{"class":545},"  kind",[267,1341,565],{"class":549},[267,1343,839],{"class":277},[267,1345,1347,1349,1351],{"class":269,"line":1346},66,[267,1348,788],{"class":545},[267,1350,565],{"class":549},[267,1352,854],{"class":277},[267,1354,1356,1359,1361],{"class":269,"line":1355},67,[267,1357,1358],{"class":545},"  apiGroup",[267,1360,565],{"class":549},[267,1362,1363],{"class":277},"rbac.authorization.k8s.io\n",[208,1365,1366],{},"Apply and verify:",[257,1368,1370],{"className":259,"code":1369,"language":261,"meta":262,"style":262},"kubectl apply -f rbac.yaml\n\n# Verify the ServiceAccount can list events\nkubectl auth can-i list events --as=system:serviceaccount:monitoring:otel-collector\n# Should return: yes\n",[264,1371,1372,1385,1389,1394,1412],{"__ignoreMap":262},[267,1373,1374,1376,1379,1382],{"class":269,"line":270},[267,1375,274],{"class":273},[267,1377,1378],{"class":277}," apply",[267,1380,1381],{"class":284}," -f",[267,1383,1384],{"class":277}," rbac.yaml\n",[267,1386,1387],{"class":269,"line":474},[267,1388,578],{"emptyLinePlaceholder":577},[267,1390,1391],{"class":269,"line":480},[267,1392,1393],{"class":571},"# Verify the ServiceAccount can list events\n",[267,1395,1396,1398,1401,1404,1407,1409],{"class":269,"line":486},[267,1397,274],{"class":273},[267,1399,1400],{"class":277}," auth",[267,1402,1403],{"class":277}," can-i",[267,1405,1406],{"class":277}," list",[267,1408,281],{"class":277},[267,1410,1411],{"class":284}," --as=system:serviceaccount:monitoring:otel-collector\n",[267,1413,1414],{"class":269,"line":492},[267,1415,1416],{"class":571},"# Should return: yes\n",[208,1418,1419],{},"Reference the ServiceAccount in your Collector Deployment:",[257,1421,1423],{"className":536,"code":1422,"language":538,"meta":262,"style":262},"spec:\n  template:\n    spec:\n      serviceAccountName: otel-collector\n      containers:\n        - name: otel-collector\n          image: otel\u002Fopentelemetry-collector-contrib:latest\n",[264,1424,1425,1432,1439,1446,1455,1462,1474],{"__ignoreMap":262},[267,1426,1427,1430],{"class":269,"line":270},[267,1428,1429],{"class":545},"spec",[267,1431,550],{"class":549},[267,1433,1434,1437],{"class":269,"line":474},[267,1435,1436],{"class":545},"  template",[267,1438,550],{"class":549},[267,1440,1441,1444],{"class":269,"line":480},[267,1442,1443],{"class":545},"    spec",[267,1445,550],{"class":549},[267,1447,1448,1451,1453],{"class":269,"line":486},[267,1449,1450],{"class":545},"      serviceAccountName",[267,1452,565],{"class":549},[267,1454,793],{"class":277},[267,1456,1457,1460],{"class":269,"line":492},[267,1458,1459],{"class":545},"      containers",[267,1461,550],{"class":549},[267,1463,1464,1467,1470,1472],{"class":269,"line":588},[267,1465,1466],{"class":549},"        - ",[267,1468,1469],{"class":545},"name",[267,1471,565],{"class":549},[267,1473,793],{"class":277},[267,1475,1476,1479,1481],{"class":269,"line":596},[267,1477,1478],{"class":545},"          image",[267,1480,565],{"class":549},[267,1482,1483],{"class":277},"otel\u002Fopentelemetry-collector-contrib:latest\n",[329,1485,1487],{"id":1486},"out-of-cluster-kubeconfig","Out-of-Cluster (kubeconfig)",[208,1489,1490],{},"For running the Collector outside the cluster (local development, separate VM):",[257,1492,1494],{"className":536,"code":1493,"language":538,"meta":262,"style":262},"receivers:\n  k8s_events:\n    auth_type: kubeConfig\n    # Uses ~\u002F.kube\u002Fconfig by default\n    # Or specify: kube_config_path: \u002Fpath\u002Fto\u002Fkubeconfig\n",[264,1495,1496,1502,1508,1517,1522],{"__ignoreMap":262},[267,1497,1498,1500],{"class":269,"line":270},[267,1499,546],{"class":545},[267,1501,550],{"class":549},[267,1503,1504,1506],{"class":269,"line":474},[267,1505,555],{"class":545},[267,1507,550],{"class":549},[267,1509,1510,1512,1514],{"class":269,"line":480},[267,1511,562],{"class":545},[267,1513,565],{"class":549},[267,1515,1516],{"class":277},"kubeConfig\n",[267,1518,1519],{"class":269,"line":486},[267,1520,1521],{"class":571},"    # Uses ~\u002F.kube\u002Fconfig by default\n",[267,1523,1524],{"class":269,"line":492},[267,1525,1526],{"class":571},"    # Or specify: kube_config_path: \u002Fpath\u002Fto\u002Fkubeconfig\n",[245,1528,1530],{"id":1529},"log-record-structure","Log Record Structure",[208,1532,1533],{},"Each Kubernetes event becomes an OpenTelemetry log record with these fields:",[208,1535,1536,1539],{},[212,1537,1538],{},"Log record attributes"," (per-event metadata):",[334,1541,1542,1555],{},[337,1543,1544],{},[340,1545,1546,1549,1552],{},[343,1547,1548],{},"Attribute",[343,1550,1551],{},"Example",[343,1553,1554],{},"Description",[356,1556,1557,1572,1587,1602,1617,1632,1647],{},[340,1558,1559,1564,1569],{},[361,1560,1561],{},[264,1562,1563],{},"k8s.event.reason",[361,1565,1566],{},[264,1567,1568],{},"BackOff",[361,1570,1571],{},"Why the event was generated",[340,1573,1574,1579,1584],{},[361,1575,1576],{},[264,1577,1578],{},"k8s.event.action",[361,1580,1581],{},[264,1582,1583],{},"pulling",[361,1585,1586],{},"What action was being performed",[340,1588,1589,1594,1599],{},[361,1590,1591],{},[264,1592,1593],{},"k8s.event.count",[361,1595,1596],{},[264,1597,1598],{},"47",[361,1600,1601],{},"How many times this event occurred",[340,1603,1604,1609,1614],{},[361,1605,1606],{},[264,1607,1608],{},"k8s.event.start_time",[361,1610,1611],{},[264,1612,1613],{},"2026-04-05T10:00:00Z",[361,1615,1616],{},"When first observed",[340,1618,1619,1624,1629],{},[361,1620,1621],{},[264,1622,1623],{},"k8s.event.name",[361,1625,1626],{},[264,1627,1628],{},"api-7d9f-xk2p.abc123",[361,1630,1631],{},"Metadata name of the event object",[340,1633,1634,1639,1644],{},[361,1635,1636],{},[264,1637,1638],{},"k8s.event.uid",[361,1640,1641],{},[264,1642,1643],{},"a1b2c3...",[361,1645,1646],{},"UID of the event object",[340,1648,1649,1654,1659],{},[361,1650,1651],{},[264,1652,1653],{},"k8s.namespace.name",[361,1655,1656],{},[264,1657,1658],{},"production",[361,1660,1661],{},"Namespace of the event",[208,1663,1664,1667],{},[212,1665,1666],{},"Resource attributes"," (shared across all events from the same involved object):",[334,1669,1670,1680],{},[337,1671,1672],{},[340,1673,1674,1676,1678],{},[343,1675,1548],{},[343,1677,1551],{},[343,1679,1554],{},[356,1681,1682,1697,1712,1727,1742,1757],{},[340,1683,1684,1689,1694],{},[361,1685,1686],{},[264,1687,1688],{},"k8s.object.kind",[361,1690,1691],{},[264,1692,1693],{},"Pod",[361,1695,1696],{},"Type of the involved object",[340,1698,1699,1704,1709],{},[361,1700,1701],{},[264,1702,1703],{},"k8s.object.name",[361,1705,1706],{},[264,1707,1708],{},"api-7d9f-xk2p",[361,1710,1711],{},"Name of the involved object",[340,1713,1714,1719,1724],{},[361,1715,1716],{},[264,1717,1718],{},"k8s.object.uid",[361,1720,1721],{},[264,1722,1723],{},"b2c3d4...",[361,1725,1726],{},"UID of the involved object",[340,1728,1729,1734,1739],{},[361,1730,1731],{},[264,1732,1733],{},"k8s.object.fieldpath",[361,1735,1736],{},[264,1737,1738],{},"spec.containers{api}",[361,1740,1741],{},"Field path within the object",[340,1743,1744,1749,1754],{},[361,1745,1746],{},[264,1747,1748],{},"k8s.object.api_version",[361,1750,1751],{},[264,1752,1753],{},"v1",[361,1755,1756],{},"API version of the involved object",[340,1758,1759,1764,1769],{},[361,1760,1761],{},[264,1762,1763],{},"k8s.object.resource_version",[361,1765,1766],{},[264,1767,1768],{},"12345",[361,1770,1771],{},"Resource version",[208,1773,1774],{},[212,1775,1776],{},"Log record fields:",[334,1778,1779,1789],{},[337,1780,1781],{},[340,1782,1783,1786],{},[343,1784,1785],{},"Field",[343,1787,1788],{},"Value",[356,1790,1791,1808],{},[340,1792,1793,1798],{},[361,1794,1795],{},[264,1796,1797],{},"severity",[361,1799,1800,1803,1804,1807],{},[264,1801,1802],{},"INFO"," for Normal events, ",[264,1805,1806],{},"WARN"," for Warning events",[340,1809,1810,1815],{},[361,1811,1812],{},[264,1813,1814],{},"body",[361,1816,1817],{},"The event message text",[245,1819,1821],{"id":1820},"common-event-reasons-reference","Common Event Reasons Reference",[208,1823,1824],{},"Understanding event reasons lets you build targeted filters and alerts:",[334,1826,1827,1840],{},[337,1828,1829],{},[340,1830,1831,1834,1837],{},[343,1832,1833],{},"Reason",[343,1835,1836],{},"Type",[343,1838,1839],{},"Meaning",[356,1841,1842,1855,1867,1879,1891,1903,1915,1927,1939,1951,1963,1975,1987],{},[340,1843,1844,1849,1852],{},[361,1845,1846],{},[264,1847,1848],{},"Scheduled",[361,1850,1851],{},"Normal",[361,1853,1854],{},"Pod assigned to a node",[340,1856,1857,1862,1864],{},[361,1858,1859],{},[264,1860,1861],{},"Pulled",[361,1863,1851],{},[361,1865,1866],{},"Container image pulled successfully",[340,1868,1869,1874,1876],{},[361,1870,1871],{},[264,1872,1873],{},"Started",[361,1875,1851],{},[361,1877,1878],{},"Container started",[340,1880,1881,1886,1888],{},[361,1882,1883],{},[264,1884,1885],{},"Created",[361,1887,1851],{},[361,1889,1890],{},"Container created",[340,1892,1893,1897,1900],{},[361,1894,1895],{},[264,1896,1568],{},[361,1898,1899],{},"Warning",[361,1901,1902],{},"Container restarting (CrashLoopBackOff)",[340,1904,1905,1910,1912],{},[361,1906,1907],{},[264,1908,1909],{},"OOMKilling",[361,1911,1899],{},[361,1913,1914],{},"Container killed due to out-of-memory",[340,1916,1917,1922,1924],{},[361,1918,1919],{},[264,1920,1921],{},"Failed",[361,1923,1899],{},[361,1925,1926],{},"Image pull failed",[340,1928,1929,1934,1936],{},[361,1930,1931],{},[264,1932,1933],{},"FailedScheduling",[361,1935,1899],{},[361,1937,1938],{},"No node available for pod",[340,1940,1941,1946,1948],{},[361,1942,1943],{},[264,1944,1945],{},"Evicted",[361,1947,1899],{},[361,1949,1950],{},"Pod evicted (usually low disk\u002Fmemory on node)",[340,1952,1953,1958,1960],{},[361,1954,1955],{},[264,1956,1957],{},"NodeNotReady",[361,1959,1899],{},[361,1961,1962],{},"Node transitioned to not-ready state",[340,1964,1965,1970,1972],{},[361,1966,1967],{},[264,1968,1969],{},"Killing",[361,1971,1851],{},[361,1973,1974],{},"Container being terminated",[340,1976,1977,1982,1984],{},[361,1978,1979],{},[264,1980,1981],{},"Unhealthy",[361,1983,1899],{},[361,1985,1986],{},"Liveness\u002Freadiness probe failed",[340,1988,1989,1994,1996],{},[361,1990,1991],{},[264,1992,1993],{},"FailedMount",[361,1995,1899],{},[361,1997,1998],{},"Volume mount failed",[245,2000,735],{"id":2001},"filtering-events",[329,2003,2005],{"id":2004},"by-namespace","By Namespace",[208,2007,2008],{},"Monitor only production and staging:",[257,2010,2012],{"className":536,"code":2011,"language":538,"meta":262,"style":262},"receivers:\n  k8s_events:\n    auth_type: serviceAccount\n    namespaces: [production, staging]\n",[264,2013,2014,2020,2026,2035],{"__ignoreMap":262},[267,2015,2016,2018],{"class":269,"line":270},[267,2017,546],{"class":545},[267,2019,550],{"class":549},[267,2021,2022,2024],{"class":269,"line":474},[267,2023,555],{"class":545},[267,2025,550],{"class":549},[267,2027,2028,2030,2032],{"class":269,"line":480},[267,2029,562],{"class":545},[267,2031,565],{"class":549},[267,2033,2034],{"class":277},"serviceAccount\n",[267,2036,2037,2040,2042,2044,2046,2049],{"class":269,"line":486},[267,2038,2039],{"class":545},"    namespaces",[267,2041,693],{"class":549},[267,2043,1658],{"class":277},[267,2045,983],{"class":549},[267,2047,2048],{"class":277},"staging",[267,2050,698],{"class":549},[329,2052,2054],{"id":2053},"by-event-type-warning-only","By Event Type (Warning Only)",[208,2056,2057],{},"Use the filter processor with OTTL expressions to keep only Warning events and drop Normal noise:",[257,2059,2061],{"className":536,"code":2060,"language":538,"meta":262,"style":262},"processors:\n  filter\u002Fwarnings_only:\n    error_mode: ignore\n    log_conditions:\n      - severity_number \u003C SEVERITY_NUMBER_WARN\n",[264,2062,2063,2069,2076,2086,2093],{"__ignoreMap":262},[267,2064,2065,2067],{"class":269,"line":270},[267,2066,583],{"class":545},[267,2068,550],{"class":549},[267,2070,2071,2074],{"class":269,"line":474},[267,2072,2073],{"class":545},"  filter\u002Fwarnings_only",[267,2075,550],{"class":549},[267,2077,2078,2081,2083],{"class":269,"line":480},[267,2079,2080],{"class":545},"    error_mode",[267,2082,565],{"class":549},[267,2084,2085],{"class":277},"ignore\n",[267,2087,2088,2091],{"class":269,"line":486},[267,2089,2090],{"class":545},"    log_conditions",[267,2092,550],{"class":549},[267,2094,2095,2097],{"class":269,"line":492},[267,2096,888],{"class":549},[267,2098,2099],{"class":277},"severity_number \u003C SEVERITY_NUMBER_WARN\n",[208,2101,2102,2105,2106,2109],{},[264,2103,2104],{},"log_conditions"," drops any record matching the condition. ",[264,2107,2108],{},"SEVERITY_NUMBER_WARN = 13"," — so this drops INFO (9–12) and below, keeping only WARN and ERROR.",[329,2111,2113],{"id":2112},"drop-noisy-reasons","Drop Noisy Reasons",[208,2115,2116],{},"Some events fire constantly and add noise. Drop them in the Collector before they reach your backend:",[257,2118,2120],{"className":536,"code":2119,"language":538,"meta":262,"style":262},"processors:\n  filter\u002Fdrop_noise:\n    error_mode: ignore\n    log_conditions:\n      - IsMatch(attributes[\"k8s.event.reason\"], \"^(Pulled|Created|Started|Scheduled|Killing)$\")\n",[264,2121,2122,2128,2135,2143,2149],{"__ignoreMap":262},[267,2123,2124,2126],{"class":269,"line":270},[267,2125,583],{"class":545},[267,2127,550],{"class":549},[267,2129,2130,2133],{"class":269,"line":474},[267,2131,2132],{"class":545},"  filter\u002Fdrop_noise",[267,2134,550],{"class":549},[267,2136,2137,2139,2141],{"class":269,"line":480},[267,2138,2080],{"class":545},[267,2140,565],{"class":549},[267,2142,2085],{"class":277},[267,2144,2145,2147],{"class":269,"line":486},[267,2146,2090],{"class":545},[267,2148,550],{"class":549},[267,2150,2151,2153],{"class":269,"line":492},[267,2152,888],{"class":549},[267,2154,2155],{"class":277},"IsMatch(attributes[\"k8s.event.reason\"], \"^(Pulled|Created|Started|Scheduled|Killing)$\")\n",[245,2157,2159],{"id":2158},"enrichment-with-processors","Enrichment with Processors",[329,2161,2163],{"id":2162},"add-cluster-identifier","Add Cluster Identifier",[208,2165,2166],{},"When running multiple clusters, tag events with the cluster name:",[257,2168,2170],{"className":536,"code":2169,"language":538,"meta":262,"style":262},"processors:\n  resource:\n    attributes:\n      - action: insert\n        key: k8s.cluster.name\n        value: production-eu-west-1\n\nservice:\n  pipelines:\n    logs:\n      receivers: [k8s_events]\n      processors: [resource, batch]\n      exporters: [otlp\u002Fuptrace]\n",[264,2171,2172,2178,2185,2192,2204,2214,2224,2228,2234,2240,2246,2256,2271],{"__ignoreMap":262},[267,2173,2174,2176],{"class":269,"line":270},[267,2175,583],{"class":545},[267,2177,550],{"class":549},[267,2179,2180,2183],{"class":269,"line":474},[267,2181,2182],{"class":545},"  resource",[267,2184,550],{"class":549},[267,2186,2187,2190],{"class":269,"line":480},[267,2188,2189],{"class":545},"    attributes",[267,2191,550],{"class":549},[267,2193,2194,2196,2199,2201],{"class":269,"line":486},[267,2195,888],{"class":549},[267,2197,2198],{"class":545},"action",[267,2200,565],{"class":549},[267,2202,2203],{"class":277},"insert\n",[267,2205,2206,2209,2211],{"class":269,"line":492},[267,2207,2208],{"class":545},"        key",[267,2210,565],{"class":549},[267,2212,2213],{"class":277},"k8s.cluster.name\n",[267,2215,2216,2219,2221],{"class":269,"line":588},[267,2217,2218],{"class":545},"        value",[267,2220,565],{"class":549},[267,2222,2223],{"class":277},"production-eu-west-1\n",[267,2225,2226],{"class":269,"line":596},[267,2227,578],{"emptyLinePlaceholder":577},[267,2229,2230,2232],{"class":269,"line":607},[267,2231,666],{"class":545},[267,2233,550],{"class":549},[267,2235,2236,2238],{"class":269,"line":612},[267,2237,674],{"class":545},[267,2239,550],{"class":549},[267,2241,2242,2244],{"class":269,"line":620},[267,2243,682],{"class":545},[267,2245,550],{"class":549},[267,2247,2248,2250,2252,2254],{"class":269,"line":628},[267,2249,690],{"class":545},[267,2251,693],{"class":549},[267,2253,409],{"class":277},[267,2255,698],{"class":549},[267,2257,2258,2260,2262,2265,2267,2269],{"class":269,"line":639},[267,2259,704],{"class":545},[267,2261,693],{"class":549},[267,2263,2264],{"class":277},"resource",[267,2266,983],{"class":549},[267,2268,709],{"class":277},[267,2270,698],{"class":549},[267,2272,2273,2275,2277,2279],{"class":269,"line":647},[267,2274,717],{"class":545},[267,2276,693],{"class":549},[267,2278,722],{"class":277},[267,2280,698],{"class":549},[329,2282,2284],{"id":2283},"attribute-transformation","Attribute Transformation",[208,2286,2287],{},"Rename attributes or extract values for easier querying:",[257,2289,2291],{"className":536,"code":2290,"language":538,"meta":262,"style":262},"processors:\n  attributes\u002Fenrich:\n    actions:\n      - action: insert\n        key: alert.team\n        from_attribute: k8s.namespace.name  # Use namespace to route alerts\n",[264,2292,2293,2299,2306,2313,2323,2332],{"__ignoreMap":262},[267,2294,2295,2297],{"class":269,"line":270},[267,2296,583],{"class":545},[267,2298,550],{"class":549},[267,2300,2301,2304],{"class":269,"line":474},[267,2302,2303],{"class":545},"  attributes\u002Fenrich",[267,2305,550],{"class":549},[267,2307,2308,2311],{"class":269,"line":480},[267,2309,2310],{"class":545},"    actions",[267,2312,550],{"class":549},[267,2314,2315,2317,2319,2321],{"class":269,"line":486},[267,2316,888],{"class":549},[267,2318,2198],{"class":545},[267,2320,565],{"class":549},[267,2322,2203],{"class":277},[267,2324,2325,2327,2329],{"class":269,"line":492},[267,2326,2208],{"class":545},[267,2328,565],{"class":549},[267,2330,2331],{"class":277},"alert.team\n",[267,2333,2334,2337,2339,2341],{"class":269,"line":588},[267,2335,2336],{"class":545},"        from_attribute",[267,2338,565],{"class":549},[267,2340,1653],{"class":277},[267,2342,2343],{"class":571},"  # Use namespace to route alerts\n",[245,2345,2347],{"id":2346},"deployment-single-collector-for-everything","Deployment: Single Collector for Everything",[208,2349,2350],{},"The most common pattern is a single Deployment that collects both cluster events and ships them alongside metrics and traces:",[257,2352,2354],{"className":536,"code":2353,"language":538,"meta":262,"style":262},"apiVersion: apps\u002Fv1\nkind: Deployment\nmetadata:\n  name: otel-collector\n  namespace: monitoring\nspec:\n  replicas: 1    # See note on replicas below\n  selector:\n    matchLabels:\n      app: otel-collector\n  template:\n    metadata:\n      labels:\n        app: otel-collector\n    spec:\n      serviceAccountName: otel-collector\n      containers:\n      - name: otel-collector\n        image: otel\u002Fopentelemetry-collector-contrib:latest\n        args: [\"--config=\u002Fetc\u002Fotelcol-contrib\u002Fconfig.yaml\"]\n        volumeMounts:\n        - name: config\n          mountPath: \u002Fetc\u002Fotelcol-contrib\n      volumes:\n      - name: config\n        configMap:\n          name: otel-collector-config\n",[264,2355,2356,2365,2374,2380,2388,2396,2402,2415,2422,2429,2438,2444,2451,2458,2467,2473,2481,2487,2497,2506,2518,2525,2536,2546,2553,2563,2570],{"__ignoreMap":262},[267,2357,2358,2360,2362],{"class":269,"line":270},[267,2359,761],{"class":545},[267,2361,565],{"class":549},[267,2363,2364],{"class":277},"apps\u002Fv1\n",[267,2366,2367,2369,2371],{"class":269,"line":474},[267,2368,771],{"class":545},[267,2370,565],{"class":549},[267,2372,2373],{"class":277},"Deployment\n",[267,2375,2376,2378],{"class":269,"line":480},[267,2377,781],{"class":545},[267,2379,550],{"class":549},[267,2381,2382,2384,2386],{"class":269,"line":486},[267,2383,788],{"class":545},[267,2385,565],{"class":549},[267,2387,793],{"class":277},[267,2389,2390,2392,2394],{"class":269,"line":492},[267,2391,798],{"class":545},[267,2393,565],{"class":549},[267,2395,803],{"class":277},[267,2397,2398,2400],{"class":269,"line":588},[267,2399,1429],{"class":545},[267,2401,550],{"class":549},[267,2403,2404,2407,2409,2412],{"class":269,"line":596},[267,2405,2406],{"class":545},"  replicas",[267,2408,565],{"class":549},[267,2410,2411],{"class":284},"1",[267,2413,2414],{"class":571},"    # See note on replicas below\n",[267,2416,2417,2420],{"class":269,"line":607},[267,2418,2419],{"class":545},"  selector",[267,2421,550],{"class":549},[267,2423,2424,2427],{"class":269,"line":612},[267,2425,2426],{"class":545},"    matchLabels",[267,2428,550],{"class":549},[267,2430,2431,2434,2436],{"class":269,"line":620},[267,2432,2433],{"class":545},"      app",[267,2435,565],{"class":549},[267,2437,793],{"class":277},[267,2439,2440,2442],{"class":269,"line":628},[267,2441,1436],{"class":545},[267,2443,550],{"class":549},[267,2445,2446,2449],{"class":269,"line":639},[267,2447,2448],{"class":545},"    metadata",[267,2450,550],{"class":549},[267,2452,2453,2456],{"class":269,"line":647},[267,2454,2455],{"class":545},"      labels",[267,2457,550],{"class":549},[267,2459,2460,2463,2465],{"class":269,"line":658},[267,2461,2462],{"class":545},"        app",[267,2464,565],{"class":549},[267,2466,793],{"class":277},[267,2468,2469,2471],{"class":269,"line":663},[267,2470,1443],{"class":545},[267,2472,550],{"class":549},[267,2474,2475,2477,2479],{"class":269,"line":671},[267,2476,1450],{"class":545},[267,2478,565],{"class":549},[267,2480,793],{"class":277},[267,2482,2483,2485],{"class":269,"line":679},[267,2484,1459],{"class":545},[267,2486,550],{"class":549},[267,2488,2489,2491,2493,2495],{"class":269,"line":687},[267,2490,888],{"class":549},[267,2492,1469],{"class":545},[267,2494,565],{"class":549},[267,2496,793],{"class":277},[267,2498,2499,2502,2504],{"class":269,"line":701},[267,2500,2501],{"class":545},"        image",[267,2503,565],{"class":549},[267,2505,1483],{"class":277},[267,2507,2508,2511,2513,2516],{"class":269,"line":714},[267,2509,2510],{"class":545},"        args",[267,2512,693],{"class":549},[267,2514,2515],{"class":277},"\"--config=\u002Fetc\u002Fotelcol-contrib\u002Fconfig.yaml\"",[267,2517,698],{"class":549},[267,2519,2520,2523],{"class":269,"line":908},[267,2521,2522],{"class":545},"        volumeMounts",[267,2524,550],{"class":549},[267,2526,2527,2529,2531,2533],{"class":269,"line":916},[267,2528,1466],{"class":549},[267,2530,1469],{"class":545},[267,2532,565],{"class":549},[267,2534,2535],{"class":277},"config\n",[267,2537,2538,2541,2543],{"class":269,"line":924},[267,2539,2540],{"class":545},"          mountPath",[267,2542,565],{"class":549},[267,2544,2545],{"class":277},"\u002Fetc\u002Fotelcol-contrib\n",[267,2547,2548,2551],{"class":269,"line":932},[267,2549,2550],{"class":545},"      volumes",[267,2552,550],{"class":549},[267,2554,2555,2557,2559,2561],{"class":269,"line":940},[267,2556,888],{"class":549},[267,2558,1469],{"class":545},[267,2560,565],{"class":549},[267,2562,2535],{"class":277},[267,2564,2565,2568],{"class":269,"line":948},[267,2566,2567],{"class":545},"        configMap",[267,2569,550],{"class":549},[267,2571,2572,2575,2577],{"class":269,"line":956},[267,2573,2574],{"class":545},"          name",[267,2576,565],{"class":549},[267,2578,2579],{"class":277},"otel-collector-config\n",[205,2581,2582],{},[208,2583,2584,2585,2588,2589,2597],{},"⚠️ ",[212,2586,2587],{},"Replica count:"," Without leader election, run exactly one replica — multiple replicas each open a separate watch stream and produce duplicate events. For high availability, configure the ",[217,2590,2594],{"href":2591,"rel":2592},"https:\u002F\u002Fgithub.com\u002Fopen-telemetry\u002Fopentelemetry-collector-contrib\u002Ftree\u002Fmain\u002Fextension\u002Fk8sleaderelector",[2593],"nofollow",[264,2595,2596],{},"k8s_leader_elector"," extension so only the elected replica watches events.",[205,2599,2600],{},[208,2601,2602,2603,2606,2607,736],{},"🔗 ",[212,2604,2605],{},"OpenTelemetry Operator:"," For automated Collector lifecycle management in Kubernetes, consider the ",[217,2608,2610],{"href":2609},"\u002Fopentelemetry\u002Foperator","OpenTelemetry Operator",[208,2612,2613],{},"Full config combining events + metrics:",[257,2615,2617],{"className":536,"code":2616,"language":538,"meta":262,"style":262},"apiVersion: v1\nkind: ConfigMap\nmetadata:\n  name: otel-collector-config\n  namespace: monitoring\ndata:\n  config.yaml: |\n    receivers:\n      k8s_events:\n        auth_type: serviceAccount\n        namespaces: [production, staging, default]\n\n      # Also collect cluster metrics\n      k8s_cluster:\n        auth_type: serviceAccount\n        collection_interval: 30s\n\n    processors:\n      resource:\n        attributes:\n          - action: insert\n            key: k8s.cluster.name\n            value: my-cluster\n      batch:\n        timeout: 10s\n\n    exporters:\n      otlp\u002Fuptrace:\n        endpoint: api.uptrace.dev:4317\n        headers:\n          uptrace-dsn: 'https:\u002F\u002F\u003Csecret>@api.uptrace.dev?grpc=4317'\n\n    service:\n      pipelines:\n        logs:\n          receivers: [k8s_events]\n          processors: [resource, batch]\n          exporters: [otlp\u002Fuptrace]\n        metrics:\n          receivers: [k8s_cluster]\n          processors: [resource, batch]\n          exporters: [otlp\u002Fuptrace]\n",[264,2618,2619,2627,2636,2642,2650,2658,2665,2676,2681,2686,2691,2696,2700,2705,2710,2714,2719,2723,2728,2733,2738,2743,2748,2753,2758,2763,2767,2772,2777,2782,2787,2792,2796,2801,2806,2811,2816,2821,2826,2831,2836,2840],{"__ignoreMap":262},[267,2620,2621,2623,2625],{"class":269,"line":270},[267,2622,761],{"class":545},[267,2624,565],{"class":549},[267,2626,766],{"class":277},[267,2628,2629,2631,2633],{"class":269,"line":474},[267,2630,771],{"class":545},[267,2632,565],{"class":549},[267,2634,2635],{"class":277},"ConfigMap\n",[267,2637,2638,2640],{"class":269,"line":480},[267,2639,781],{"class":545},[267,2641,550],{"class":549},[267,2643,2644,2646,2648],{"class":269,"line":486},[267,2645,788],{"class":545},[267,2647,565],{"class":549},[267,2649,2579],{"class":277},[267,2651,2652,2654,2656],{"class":269,"line":492},[267,2653,798],{"class":545},[267,2655,565],{"class":549},[267,2657,803],{"class":277},[267,2659,2660,2663],{"class":269,"line":588},[267,2661,2662],{"class":545},"data",[267,2664,550],{"class":549},[267,2666,2667,2670,2672],{"class":269,"line":596},[267,2668,2669],{"class":545},"  config.yaml",[267,2671,565],{"class":549},[267,2673,2675],{"class":2674},"sD7c4","|\n",[267,2677,2678],{"class":269,"line":607},[267,2679,2680],{"class":277},"    receivers:\n",[267,2682,2683],{"class":269,"line":612},[267,2684,2685],{"class":277},"      k8s_events:\n",[267,2687,2688],{"class":269,"line":620},[267,2689,2690],{"class":277},"        auth_type: serviceAccount\n",[267,2692,2693],{"class":269,"line":628},[267,2694,2695],{"class":277},"        namespaces: [production, staging, default]\n",[267,2697,2698],{"class":269,"line":639},[267,2699,578],{"emptyLinePlaceholder":577},[267,2701,2702],{"class":269,"line":647},[267,2703,2704],{"class":277},"      # Also collect cluster metrics\n",[267,2706,2707],{"class":269,"line":658},[267,2708,2709],{"class":277},"      k8s_cluster:\n",[267,2711,2712],{"class":269,"line":663},[267,2713,2690],{"class":277},[267,2715,2716],{"class":269,"line":671},[267,2717,2718],{"class":277},"        collection_interval: 30s\n",[267,2720,2721],{"class":269,"line":679},[267,2722,578],{"emptyLinePlaceholder":577},[267,2724,2725],{"class":269,"line":687},[267,2726,2727],{"class":277},"    processors:\n",[267,2729,2730],{"class":269,"line":701},[267,2731,2732],{"class":277},"      resource:\n",[267,2734,2735],{"class":269,"line":714},[267,2736,2737],{"class":277},"        attributes:\n",[267,2739,2740],{"class":269,"line":908},[267,2741,2742],{"class":277},"          - action: insert\n",[267,2744,2745],{"class":269,"line":916},[267,2746,2747],{"class":277},"            key: k8s.cluster.name\n",[267,2749,2750],{"class":269,"line":924},[267,2751,2752],{"class":277},"            value: my-cluster\n",[267,2754,2755],{"class":269,"line":932},[267,2756,2757],{"class":277},"      batch:\n",[267,2759,2760],{"class":269,"line":940},[267,2761,2762],{"class":277},"        timeout: 10s\n",[267,2764,2765],{"class":269,"line":948},[267,2766,578],{"emptyLinePlaceholder":577},[267,2768,2769],{"class":269,"line":956},[267,2770,2771],{"class":277},"    exporters:\n",[267,2773,2774],{"class":269,"line":964},[267,2775,2776],{"class":277},"      otlp\u002Fuptrace:\n",[267,2778,2779],{"class":269,"line":972},[267,2780,2781],{"class":277},"        endpoint: api.uptrace.dev:4317\n",[267,2783,2784],{"class":269,"line":996},[267,2785,2786],{"class":277},"        headers:\n",[267,2788,2789],{"class":269,"line":1010},[267,2790,2791],{"class":277},"          uptrace-dsn: 'https:\u002F\u002F\u003Csecret>@api.uptrace.dev?grpc=4317'\n",[267,2793,2794],{"class":269,"line":1017},[267,2795,578],{"emptyLinePlaceholder":577},[267,2797,2798],{"class":269,"line":1025},[267,2799,2800],{"class":277},"    service:\n",[267,2802,2803],{"class":269,"line":1033},[267,2804,2805],{"class":277},"      pipelines:\n",[267,2807,2808],{"class":269,"line":1041},[267,2809,2810],{"class":277},"        logs:\n",[267,2812,2813],{"class":269,"line":1049},[267,2814,2815],{"class":277},"          receivers: [k8s_events]\n",[267,2817,2818],{"class":269,"line":1068},[267,2819,2820],{"class":277},"          processors: [resource, batch]\n",[267,2822,2823],{"class":269,"line":1082},[267,2824,2825],{"class":277},"          exporters: [otlp\u002Fuptrace]\n",[267,2827,2828],{"class":269,"line":1089},[267,2829,2830],{"class":277},"        metrics:\n",[267,2832,2833],{"class":269,"line":1096},[267,2834,2835],{"class":277},"          receivers: [k8s_cluster]\n",[267,2837,2838],{"class":269,"line":1103},[267,2839,2820],{"class":277},[267,2841,2842],{"class":269,"line":1110},[267,2843,2825],{"class":277},[245,2845,2847],{"id":2846},"real-world-examples","Real-World Examples",[329,2849,2851],{"id":2850},"alert-on-crashloopbackoff","Alert on CrashLoopBackOff",[208,2853,2854],{},"Forward only crash-related events to a high-priority pipeline:",[257,2856,2858],{"className":536,"code":2857,"language":538,"meta":262,"style":262},"receivers:\n  k8s_events:\n    auth_type: serviceAccount\n\nprocessors:\n  filter\u002Fcrashes:\n    error_mode: ignore\n    log_conditions:\n      - not IsMatch(attributes[\"k8s.event.reason\"], \"^(BackOff|OOMKilling|Evicted|Unhealthy)$\")\n  batch:\n    timeout: 5s\n\nexporters:\n  otlp\u002Fuptrace:\n    endpoint: api.uptrace.dev:4317\n    headers:\n      uptrace-dsn: 'https:\u002F\u002F\u003Csecret>@api.uptrace.dev?grpc=4317'\n\nservice:\n  pipelines:\n    logs\u002Falerts:\n      receivers: [k8s_events]\n      processors: [filter\u002Fcrashes, batch]\n      exporters: [otlp\u002Fuptrace]\n",[264,2859,2860,2866,2872,2880,2884,2890,2897,2905,2911,2918,2924,2933,2937,2943,2949,2957,2963,2971,2975,2981,2987,2994,3004,3019],{"__ignoreMap":262},[267,2861,2862,2864],{"class":269,"line":270},[267,2863,546],{"class":545},[267,2865,550],{"class":549},[267,2867,2868,2870],{"class":269,"line":474},[267,2869,555],{"class":545},[267,2871,550],{"class":549},[267,2873,2874,2876,2878],{"class":269,"line":480},[267,2875,562],{"class":545},[267,2877,565],{"class":549},[267,2879,2034],{"class":277},[267,2881,2882],{"class":269,"line":486},[267,2883,578],{"emptyLinePlaceholder":577},[267,2885,2886,2888],{"class":269,"line":492},[267,2887,583],{"class":545},[267,2889,550],{"class":549},[267,2891,2892,2895],{"class":269,"line":588},[267,2893,2894],{"class":545},"  filter\u002Fcrashes",[267,2896,550],{"class":549},[267,2898,2899,2901,2903],{"class":269,"line":596},[267,2900,2080],{"class":545},[267,2902,565],{"class":549},[267,2904,2085],{"class":277},[267,2906,2907,2909],{"class":269,"line":607},[267,2908,2090],{"class":545},[267,2910,550],{"class":549},[267,2912,2913,2915],{"class":269,"line":612},[267,2914,888],{"class":549},[267,2916,2917],{"class":277},"not IsMatch(attributes[\"k8s.event.reason\"], \"^(BackOff|OOMKilling|Evicted|Unhealthy)$\")\n",[267,2919,2920,2922],{"class":269,"line":620},[267,2921,591],{"class":545},[267,2923,550],{"class":549},[267,2925,2926,2928,2930],{"class":269,"line":628},[267,2927,599],{"class":545},[267,2929,565],{"class":549},[267,2931,2932],{"class":277},"5s\n",[267,2934,2935],{"class":269,"line":639},[267,2936,578],{"emptyLinePlaceholder":577},[267,2938,2939,2941],{"class":269,"line":647},[267,2940,615],{"class":545},[267,2942,550],{"class":549},[267,2944,2945,2947],{"class":269,"line":658},[267,2946,623],{"class":545},[267,2948,550],{"class":549},[267,2950,2951,2953,2955],{"class":269,"line":663},[267,2952,631],{"class":545},[267,2954,565],{"class":549},[267,2956,636],{"class":277},[267,2958,2959,2961],{"class":269,"line":671},[267,2960,642],{"class":545},[267,2962,550],{"class":549},[267,2964,2965,2967,2969],{"class":269,"line":679},[267,2966,650],{"class":545},[267,2968,565],{"class":549},[267,2970,655],{"class":277},[267,2972,2973],{"class":269,"line":687},[267,2974,578],{"emptyLinePlaceholder":577},[267,2976,2977,2979],{"class":269,"line":701},[267,2978,666],{"class":545},[267,2980,550],{"class":549},[267,2982,2983,2985],{"class":269,"line":714},[267,2984,674],{"class":545},[267,2986,550],{"class":549},[267,2988,2989,2992],{"class":269,"line":908},[267,2990,2991],{"class":545},"    logs\u002Falerts",[267,2993,550],{"class":549},[267,2995,2996,2998,3000,3002],{"class":269,"line":916},[267,2997,690],{"class":545},[267,2999,693],{"class":549},[267,3001,409],{"class":277},[267,3003,698],{"class":549},[267,3005,3006,3008,3010,3013,3015,3017],{"class":269,"line":924},[267,3007,704],{"class":545},[267,3009,693],{"class":549},[267,3011,3012],{"class":277},"filter\u002Fcrashes",[267,3014,983],{"class":549},[267,3016,709],{"class":277},[267,3018,698],{"class":549},[267,3020,3021,3023,3025,3027],{"class":269,"line":932},[267,3022,717],{"class":545},[267,3024,693],{"class":549},[267,3026,722],{"class":277},[267,3028,698],{"class":549},[329,3030,3032],{"id":3031},"separate-pipelines-warnings-vs-informational","Separate Pipelines: Warnings vs Informational",[257,3034,3036],{"className":536,"code":3035,"language":538,"meta":262,"style":262},"processors:\n  filter\u002Fwarnings:\n    error_mode: ignore\n    log_conditions:\n      - severity_number \u003C SEVERITY_NUMBER_WARN   # drops INFO, keeps WARN+\n  filter\u002Fnormal:\n    error_mode: ignore\n    log_conditions:\n      - severity_number >= SEVERITY_NUMBER_WARN  # drops WARN+, keeps INFO\n\nservice:\n  pipelines:\n    logs\u002Fwarnings:\n      receivers: [k8s_events]\n      processors: [filter\u002Fwarnings, resource, batch]\n      exporters: [otlp\u002Fuptrace]\n    logs\u002Fnormal:\n      receivers: [k8s_events]\n      processors: [filter\u002Fnormal, resource, batch]\n      exporters: [otlp\u002Fuptrace]\n",[264,3037,3038,3044,3051,3059,3065,3075,3082,3090,3096,3106,3110,3116,3122,3129,3139,3158,3168,3175,3185,3204],{"__ignoreMap":262},[267,3039,3040,3042],{"class":269,"line":270},[267,3041,583],{"class":545},[267,3043,550],{"class":549},[267,3045,3046,3049],{"class":269,"line":474},[267,3047,3048],{"class":545},"  filter\u002Fwarnings",[267,3050,550],{"class":549},[267,3052,3053,3055,3057],{"class":269,"line":480},[267,3054,2080],{"class":545},[267,3056,565],{"class":549},[267,3058,2085],{"class":277},[267,3060,3061,3063],{"class":269,"line":486},[267,3062,2090],{"class":545},[267,3064,550],{"class":549},[267,3066,3067,3069,3072],{"class":269,"line":492},[267,3068,888],{"class":549},[267,3070,3071],{"class":277},"severity_number \u003C SEVERITY_NUMBER_WARN",[267,3073,3074],{"class":571},"   # drops INFO, keeps WARN+\n",[267,3076,3077,3080],{"class":269,"line":588},[267,3078,3079],{"class":545},"  filter\u002Fnormal",[267,3081,550],{"class":549},[267,3083,3084,3086,3088],{"class":269,"line":596},[267,3085,2080],{"class":545},[267,3087,565],{"class":549},[267,3089,2085],{"class":277},[267,3091,3092,3094],{"class":269,"line":607},[267,3093,2090],{"class":545},[267,3095,550],{"class":549},[267,3097,3098,3100,3103],{"class":269,"line":612},[267,3099,888],{"class":549},[267,3101,3102],{"class":277},"severity_number >= SEVERITY_NUMBER_WARN",[267,3104,3105],{"class":571},"  # drops WARN+, keeps INFO\n",[267,3107,3108],{"class":269,"line":620},[267,3109,578],{"emptyLinePlaceholder":577},[267,3111,3112,3114],{"class":269,"line":628},[267,3113,666],{"class":545},[267,3115,550],{"class":549},[267,3117,3118,3120],{"class":269,"line":639},[267,3119,674],{"class":545},[267,3121,550],{"class":549},[267,3123,3124,3127],{"class":269,"line":647},[267,3125,3126],{"class":545},"    logs\u002Fwarnings",[267,3128,550],{"class":549},[267,3130,3131,3133,3135,3137],{"class":269,"line":658},[267,3132,690],{"class":545},[267,3134,693],{"class":549},[267,3136,409],{"class":277},[267,3138,698],{"class":549},[267,3140,3141,3143,3145,3148,3150,3152,3154,3156],{"class":269,"line":663},[267,3142,704],{"class":545},[267,3144,693],{"class":549},[267,3146,3147],{"class":277},"filter\u002Fwarnings",[267,3149,983],{"class":549},[267,3151,2264],{"class":277},[267,3153,983],{"class":549},[267,3155,709],{"class":277},[267,3157,698],{"class":549},[267,3159,3160,3162,3164,3166],{"class":269,"line":671},[267,3161,717],{"class":545},[267,3163,693],{"class":549},[267,3165,722],{"class":277},[267,3167,698],{"class":549},[267,3169,3170,3173],{"class":269,"line":679},[267,3171,3172],{"class":545},"    logs\u002Fnormal",[267,3174,550],{"class":549},[267,3176,3177,3179,3181,3183],{"class":269,"line":687},[267,3178,690],{"class":545},[267,3180,693],{"class":549},[267,3182,409],{"class":277},[267,3184,698],{"class":549},[267,3186,3187,3189,3191,3194,3196,3198,3200,3202],{"class":269,"line":701},[267,3188,704],{"class":545},[267,3190,693],{"class":549},[267,3192,3193],{"class":277},"filter\u002Fnormal",[267,3195,983],{"class":549},[267,3197,2264],{"class":277},[267,3199,983],{"class":549},[267,3201,709],{"class":277},[267,3203,698],{"class":549},[267,3205,3206,3208,3210,3212],{"class":269,"line":714},[267,3207,717],{"class":545},[267,3209,693],{"class":549},[267,3211,722],{"class":277},[267,3213,698],{"class":549},[205,3215,3216],{},[208,3217,3218,3219,3221],{},"Note: A single receiver can fan out to multiple pipelines. The ",[264,3220,409],{}," receiver only opens one watch connection regardless of how many pipelines consume it.",[329,3223,3225],{"id":3224},"combine-events-with-pod-logs","Combine Events with Pod Logs",[208,3227,3228],{},"Full-picture Kubernetes observability — events and container logs in one pipeline:",[257,3230,3232],{"className":536,"code":3231,"language":538,"meta":262,"style":262},"receivers:\n  k8s_events:\n    auth_type: serviceAccount\n\n  filelog:\n    include: [\u002Fvar\u002Flog\u002Fpods\u002F*\u002F*\u002F*.log]\n    include_file_path: true\n    operators:\n      - type: container\n\nprocessors:\n  resource:\n    attributes:\n      - action: insert\n        key: k8s.cluster.name\n        value: my-cluster\n  batch:\n    timeout: 10s\n\nexporters:\n  otlp\u002Fuptrace:\n    endpoint: api.uptrace.dev:4317\n    headers:\n      uptrace-dsn: 'https:\u002F\u002F\u003Csecret>@api.uptrace.dev?grpc=4317'\n\nservice:\n  pipelines:\n    logs:\n      receivers: [k8s_events, filelog]\n      processors: [resource, batch]\n      exporters: [otlp\u002Fuptrace]\n",[264,3233,3234,3240,3246,3254,3258,3265,3277,3287,3294,3306,3310,3316,3322,3328,3338,3346,3355,3361,3369,3373,3379,3385,3393,3399,3407,3411,3417,3423,3429,3443,3457],{"__ignoreMap":262},[267,3235,3236,3238],{"class":269,"line":270},[267,3237,546],{"class":545},[267,3239,550],{"class":549},[267,3241,3242,3244],{"class":269,"line":474},[267,3243,555],{"class":545},[267,3245,550],{"class":549},[267,3247,3248,3250,3252],{"class":269,"line":480},[267,3249,562],{"class":545},[267,3251,565],{"class":549},[267,3253,2034],{"class":277},[267,3255,3256],{"class":269,"line":486},[267,3257,578],{"emptyLinePlaceholder":577},[267,3259,3260,3263],{"class":269,"line":492},[267,3261,3262],{"class":545},"  filelog",[267,3264,550],{"class":549},[267,3266,3267,3270,3272,3275],{"class":269,"line":588},[267,3268,3269],{"class":545},"    include",[267,3271,693],{"class":549},[267,3273,3274],{"class":277},"\u002Fvar\u002Flog\u002Fpods\u002F*\u002F*\u002F*.log",[267,3276,698],{"class":549},[267,3278,3279,3282,3284],{"class":269,"line":596},[267,3280,3281],{"class":545},"    include_file_path",[267,3283,565],{"class":549},[267,3285,3286],{"class":284},"true\n",[267,3288,3289,3292],{"class":269,"line":607},[267,3290,3291],{"class":545},"    operators",[267,3293,550],{"class":549},[267,3295,3296,3298,3301,3303],{"class":269,"line":612},[267,3297,888],{"class":549},[267,3299,3300],{"class":545},"type",[267,3302,565],{"class":549},[267,3304,3305],{"class":277},"container\n",[267,3307,3308],{"class":269,"line":620},[267,3309,578],{"emptyLinePlaceholder":577},[267,3311,3312,3314],{"class":269,"line":628},[267,3313,583],{"class":545},[267,3315,550],{"class":549},[267,3317,3318,3320],{"class":269,"line":639},[267,3319,2182],{"class":545},[267,3321,550],{"class":549},[267,3323,3324,3326],{"class":269,"line":647},[267,3325,2189],{"class":545},[267,3327,550],{"class":549},[267,3329,3330,3332,3334,3336],{"class":269,"line":658},[267,3331,888],{"class":549},[267,3333,2198],{"class":545},[267,3335,565],{"class":549},[267,3337,2203],{"class":277},[267,3339,3340,3342,3344],{"class":269,"line":663},[267,3341,2208],{"class":545},[267,3343,565],{"class":549},[267,3345,2213],{"class":277},[267,3347,3348,3350,3352],{"class":269,"line":671},[267,3349,2218],{"class":545},[267,3351,565],{"class":549},[267,3353,3354],{"class":277},"my-cluster\n",[267,3356,3357,3359],{"class":269,"line":679},[267,3358,591],{"class":545},[267,3360,550],{"class":549},[267,3362,3363,3365,3367],{"class":269,"line":687},[267,3364,599],{"class":545},[267,3366,565],{"class":549},[267,3368,604],{"class":277},[267,3370,3371],{"class":269,"line":701},[267,3372,578],{"emptyLinePlaceholder":577},[267,3374,3375,3377],{"class":269,"line":714},[267,3376,615],{"class":545},[267,3378,550],{"class":549},[267,3380,3381,3383],{"class":269,"line":908},[267,3382,623],{"class":545},[267,3384,550],{"class":549},[267,3386,3387,3389,3391],{"class":269,"line":916},[267,3388,631],{"class":545},[267,3390,565],{"class":549},[267,3392,636],{"class":277},[267,3394,3395,3397],{"class":269,"line":924},[267,3396,642],{"class":545},[267,3398,550],{"class":549},[267,3400,3401,3403,3405],{"class":269,"line":932},[267,3402,650],{"class":545},[267,3404,565],{"class":549},[267,3406,655],{"class":277},[267,3408,3409],{"class":269,"line":940},[267,3410,578],{"emptyLinePlaceholder":577},[267,3412,3413,3415],{"class":269,"line":948},[267,3414,666],{"class":545},[267,3416,550],{"class":549},[267,3418,3419,3421],{"class":269,"line":956},[267,3420,674],{"class":545},[267,3422,550],{"class":549},[267,3424,3425,3427],{"class":269,"line":964},[267,3426,682],{"class":545},[267,3428,550],{"class":549},[267,3430,3431,3433,3435,3437,3439,3441],{"class":269,"line":972},[267,3432,690],{"class":545},[267,3434,693],{"class":549},[267,3436,409],{"class":277},[267,3438,983],{"class":549},[267,3440,414],{"class":277},[267,3442,698],{"class":549},[267,3444,3445,3447,3449,3451,3453,3455],{"class":269,"line":996},[267,3446,704],{"class":545},[267,3448,693],{"class":549},[267,3450,2264],{"class":277},[267,3452,983],{"class":549},[267,3454,709],{"class":277},[267,3456,698],{"class":549},[267,3458,3459,3461,3463,3465],{"class":269,"line":1010},[267,3460,717],{"class":545},[267,3462,693],{"class":549},[267,3464,722],{"class":277},[267,3466,698],{"class":549},[245,3468,3470],{"id":3469},"troubleshooting","Troubleshooting",[329,3472,3474],{"id":3473},"no-events-appearing","No Events Appearing",[208,3476,3477],{},[212,3478,3479],{},"Check 1: RBAC permissions",[257,3481,3483],{"className":259,"code":3482,"language":261,"meta":262,"style":262},"kubectl auth can-i list events \\\n  --as=system:serviceaccount:monitoring:otel-collector\n# Must return: yes\n\nkubectl auth can-i watch events \\\n  --as=system:serviceaccount:monitoring:otel-collector\n# Must return: yes\n\n# Also verify access to referenced objects (pods, nodes, etc.)\nkubectl auth can-i list pods \\\n  --as=system:serviceaccount:monitoring:otel-collector\n# Must return: yes\n",[264,3484,3485,3500,3505,3510,3514,3529,3533,3537,3541,3546,3561,3565],{"__ignoreMap":262},[267,3486,3487,3489,3491,3493,3495,3497],{"class":269,"line":270},[267,3488,274],{"class":273},[267,3490,1400],{"class":277},[267,3492,1403],{"class":277},[267,3494,1406],{"class":277},[267,3496,281],{"class":277},[267,3498,3499],{"class":284}," \\\n",[267,3501,3502],{"class":269,"line":474},[267,3503,3504],{"class":284},"  --as=system:serviceaccount:monitoring:otel-collector\n",[267,3506,3507],{"class":269,"line":480},[267,3508,3509],{"class":571},"# Must return: yes\n",[267,3511,3512],{"class":269,"line":486},[267,3513,578],{"emptyLinePlaceholder":577},[267,3515,3516,3518,3520,3522,3525,3527],{"class":269,"line":492},[267,3517,274],{"class":273},[267,3519,1400],{"class":277},[267,3521,1403],{"class":277},[267,3523,3524],{"class":277}," watch",[267,3526,281],{"class":277},[267,3528,3499],{"class":284},[267,3530,3531],{"class":269,"line":588},[267,3532,3504],{"class":284},[267,3534,3535],{"class":269,"line":596},[267,3536,3509],{"class":571},[267,3538,3539],{"class":269,"line":607},[267,3540,578],{"emptyLinePlaceholder":577},[267,3542,3543],{"class":269,"line":612},[267,3544,3545],{"class":571},"# Also verify access to referenced objects (pods, nodes, etc.)\n",[267,3547,3548,3550,3552,3554,3556,3559],{"class":269,"line":620},[267,3549,274],{"class":273},[267,3551,1400],{"class":277},[267,3553,1403],{"class":277},[267,3555,1406],{"class":277},[267,3557,3558],{"class":277}," pods",[267,3560,3499],{"class":284},[267,3562,3563],{"class":269,"line":628},[267,3564,3504],{"class":284},[267,3566,3567],{"class":269,"line":639},[267,3568,3509],{"class":571},[208,3570,3571,3572,3575,3576,736],{},"If ",[264,3573,3574],{},"no",", re-apply the ClusterRoleBinding from ",[217,3577,515],{"href":514},[208,3579,3580],{},[212,3581,3582],{},"Check 2: Collector logs",[257,3584,3586],{"className":259,"code":3585,"language":261,"meta":262,"style":262},"kubectl logs -n monitoring deployment\u002Fotel-collector | grep -i \"event\\|error\\|k8s\"\n",[264,3587,3588],{"__ignoreMap":262},[267,3589,3590,3592,3595,3597,3600,3603,3606,3609,3612],{"class":269,"line":270},[267,3591,274],{"class":273},[267,3593,3594],{"class":277}," logs",[267,3596,285],{"class":284},[267,3598,3599],{"class":277}," monitoring",[267,3601,3602],{"class":277}," deployment\u002Fotel-collector",[267,3604,3605],{"class":2674}," |",[267,3607,3608],{"class":273}," grep",[267,3610,3611],{"class":284}," -i",[267,3613,3614],{"class":277}," \"event\\|error\\|k8s\"\n",[208,3616,3617],{},[212,3618,3619],{},"Check 3: Verify events exist in the cluster",[257,3621,3623],{"className":259,"code":3622,"language":261,"meta":262,"style":262},"kubectl get events --all-namespaces --sort-by='.lastTimestamp' | tail -20\n",[264,3624,3625],{"__ignoreMap":262},[267,3626,3627,3629,3631,3633,3636,3638,3641,3643,3646],{"class":269,"line":270},[267,3628,274],{"class":273},[267,3630,278],{"class":277},[267,3632,281],{"class":277},[267,3634,3635],{"class":284}," --all-namespaces",[267,3637,291],{"class":284},[267,3639,3640],{"class":277},"'.lastTimestamp'",[267,3642,3605],{"class":2674},[267,3644,3645],{"class":273}," tail",[267,3647,3648],{"class":284}," -20\n",[208,3650,3651],{},"If there are no events, nothing is happening — trigger one:",[257,3653,3655],{"className":259,"code":3654,"language":261,"meta":262,"style":262},"kubectl run test-pod --image=does-not-exist:latest\nkubectl get events --field-selector involvedObject.name=test-pod\n",[264,3656,3657,3670],{"__ignoreMap":262},[267,3658,3659,3661,3664,3667],{"class":269,"line":270},[267,3660,274],{"class":273},[267,3662,3663],{"class":277}," run",[267,3665,3666],{"class":277}," test-pod",[267,3668,3669],{"class":284}," --image=does-not-exist:latest\n",[267,3671,3672,3674,3676,3678,3681],{"class":269,"line":474},[267,3673,274],{"class":273},[267,3675,278],{"class":277},[267,3677,281],{"class":277},[267,3679,3680],{"class":284}," --field-selector",[267,3682,3683],{"class":277}," involvedObject.name=test-pod\n",[208,3685,3686],{},[212,3687,3688],{},"Check 4: Debug exporter",[257,3690,3692],{"className":536,"code":3691,"language":538,"meta":262,"style":262},"exporters:\n  debug:\n    verbosity: detailed\n\nservice:\n  pipelines:\n    logs:\n      receivers: [k8s_events]\n      exporters: [debug]\n",[264,3693,3694,3700,3707,3717,3721,3727,3733,3739,3749],{"__ignoreMap":262},[267,3695,3696,3698],{"class":269,"line":270},[267,3697,615],{"class":545},[267,3699,550],{"class":549},[267,3701,3702,3705],{"class":269,"line":474},[267,3703,3704],{"class":545},"  debug",[267,3706,550],{"class":549},[267,3708,3709,3712,3714],{"class":269,"line":480},[267,3710,3711],{"class":545},"    verbosity",[267,3713,565],{"class":549},[267,3715,3716],{"class":277},"detailed\n",[267,3718,3719],{"class":269,"line":486},[267,3720,578],{"emptyLinePlaceholder":577},[267,3722,3723,3725],{"class":269,"line":492},[267,3724,666],{"class":545},[267,3726,550],{"class":549},[267,3728,3729,3731],{"class":269,"line":588},[267,3730,674],{"class":545},[267,3732,550],{"class":549},[267,3734,3735,3737],{"class":269,"line":596},[267,3736,682],{"class":545},[267,3738,550],{"class":549},[267,3740,3741,3743,3745,3747],{"class":269,"line":607},[267,3742,690],{"class":545},[267,3744,693],{"class":549},[267,3746,409],{"class":277},[267,3748,698],{"class":549},[267,3750,3751,3753,3755,3758],{"class":269,"line":612},[267,3752,717],{"class":545},[267,3754,693],{"class":549},[267,3756,3757],{"class":277},"debug",[267,3759,698],{"class":549},[329,3761,3763],{"id":3762},"duplicate-events","Duplicate Events",[208,3765,3766,3769],{},[212,3767,3768],{},"Cause:"," Multiple Collector replicas each watching events independently.",[208,3771,3772,3775],{},[212,3773,3774],{},"Fix:"," Either use a single replica, or enable leader election so only one replica watches at a time:",[257,3777,3779],{"className":536,"code":3778,"language":538,"meta":262,"style":262},"extensions:\n  k8s_leader_elector:\n    lease_name: otel-k8s-events\n    lease_namespace: monitoring\n\nreceivers:\n  k8s_events:\n    auth_type: serviceAccount\n    k8s_leader_elector: k8s_leader_elector  # Wire receiver to the extension\n\nservice:\n  extensions: [k8s_leader_elector]\n",[264,3780,3781,3788,3795,3805,3814,3818,3824,3830,3838,3850,3854,3860],{"__ignoreMap":262},[267,3782,3783,3786],{"class":269,"line":270},[267,3784,3785],{"class":545},"extensions",[267,3787,550],{"class":549},[267,3789,3790,3793],{"class":269,"line":474},[267,3791,3792],{"class":545},"  k8s_leader_elector",[267,3794,550],{"class":549},[267,3796,3797,3800,3802],{"class":269,"line":480},[267,3798,3799],{"class":545},"    lease_name",[267,3801,565],{"class":549},[267,3803,3804],{"class":277},"otel-k8s-events\n",[267,3806,3807,3810,3812],{"class":269,"line":486},[267,3808,3809],{"class":545},"    lease_namespace",[267,3811,565],{"class":549},[267,3813,803],{"class":277},[267,3815,3816],{"class":269,"line":492},[267,3817,578],{"emptyLinePlaceholder":577},[267,3819,3820,3822],{"class":269,"line":588},[267,3821,546],{"class":545},[267,3823,550],{"class":549},[267,3825,3826,3828],{"class":269,"line":596},[267,3827,555],{"class":545},[267,3829,550],{"class":549},[267,3831,3832,3834,3836],{"class":269,"line":607},[267,3833,562],{"class":545},[267,3835,565],{"class":549},[267,3837,2034],{"class":277},[267,3839,3840,3843,3845,3847],{"class":269,"line":612},[267,3841,3842],{"class":545},"    k8s_leader_elector",[267,3844,565],{"class":549},[267,3846,2596],{"class":277},[267,3848,3849],{"class":571},"  # Wire receiver to the extension\n",[267,3851,3852],{"class":269,"line":620},[267,3853,578],{"emptyLinePlaceholder":577},[267,3855,3856,3858],{"class":269,"line":628},[267,3857,666],{"class":545},[267,3859,550],{"class":549},[267,3861,3862,3865,3867,3869],{"class":269,"line":639},[267,3863,3864],{"class":545},"  extensions",[267,3866,693],{"class":549},[267,3868,2596],{"class":277},[267,3870,698],{"class":549},[329,3872,3874],{"id":3873},"events-disappearing-after-restart","Events Disappearing After Restart",[208,3876,3877,3879],{},[212,3878,3768],{}," The receiver resumes from the last watched resource version, but if the cluster has been running long enough and the version is too old, the API server may reject it.",[208,3881,3882,3885],{},[212,3883,3884],{},"Behavior:"," The receiver automatically falls back to listing all current events and continues watching from there. A short gap is expected after restart — this is normal.",[329,3887,3889],{"id":3888},"connection-refused-to-api-server","Connection Refused to API Server",[208,3891,3892,3894,3895,3898],{},[212,3893,3768],{}," The Collector is running outside the cluster but ",[264,3896,3897],{},"auth_type: serviceAccount"," is set.",[208,3900,3901,3903,3904,3907],{},[212,3902,3774],{}," Use ",[264,3905,3906],{},"kubeConfig"," for out-of-cluster deployments:",[257,3909,3911],{"className":536,"code":3910,"language":538,"meta":262,"style":262},"receivers:\n  k8s_events:\n    auth_type: kubeConfig\n",[264,3912,3913,3919,3925],{"__ignoreMap":262},[267,3914,3915,3917],{"class":269,"line":270},[267,3916,546],{"class":545},[267,3918,550],{"class":549},[267,3920,3921,3923],{"class":269,"line":474},[267,3922,555],{"class":545},[267,3924,550],{"class":549},[267,3926,3927,3929,3931],{"class":269,"line":480},[267,3928,562],{"class":545},[267,3930,565],{"class":549},[267,3932,1516],{"class":277},[245,3934,3936],{"id":3935},"faq","FAQ",[3938,3939,3940,3952,3960,4002,4023,4039,4059],"ol",{},[310,3941,3942,3945,3948,3949,3951],{},[212,3943,3944],{},"How is this different from tailing Kubernetes pod logs?",[3946,3947],"br",{},"\nKubernetes Events record cluster-level lifecycle events (scheduling, restarts, OOM) generated by Kubernetes controllers — not your application's log output. Use the ",[217,3950,254],{"href":446}," for container stdout\u002Fstderr and this receiver for cluster events. They complement each other.",[310,3953,3954,3957,3959],{},[212,3955,3956],{},"Does this receiver miss events if the Collector restarts?",[3946,3958],{},"\nIt minimizes data loss by resuming from the last resource version on reconnect. However, Kubernetes only retains events for 1 hour (default) — if the Collector is down longer than that, old events are gone. For critical environments, reduce downtime by using a Deployment with quick restart and persistent storage for the Collector state.",[310,3961,3962,3965,3967,3968,3971,3972],{},[212,3963,3964],{},"Can I watch events from all namespaces without listing them?",[3946,3966],{},"\nYes — omitting ",[264,3969,3970],{},"namespaces"," entirely watches all namespaces:",[257,3973,3975],{"className":536,"code":3974,"language":538,"meta":262,"style":262},"receivers:\n  k8s_events:\n    auth_type: serviceAccount\n    # No namespaces field = watch all namespaces\n",[264,3976,3977,3983,3989,3997],{"__ignoreMap":262},[267,3978,3979,3981],{"class":269,"line":270},[267,3980,546],{"class":545},[267,3982,550],{"class":549},[267,3984,3985,3987],{"class":269,"line":474},[267,3986,555],{"class":545},[267,3988,550],{"class":549},[267,3990,3991,3993,3995],{"class":269,"line":480},[267,3992,562],{"class":545},[267,3994,565],{"class":549},[267,3996,2034],{"class":277},[267,3998,3999],{"class":269,"line":486},[267,4000,4001],{"class":571},"    # No namespaces field = watch all namespaces\n",[310,4003,4004,4007,4009,4010,4012,4013,4015,4016,983,4018,4015,4020,4022],{},[212,4005,4006],{},"Why are Warning events showing as WARN severity but Normal events as INFO?",[3946,4008],{},"\nThis is intentional — the receiver maps Kubernetes event ",[264,4011,3300],{}," field (",[264,4014,1851],{}," → ",[264,4017,1802],{},[264,4019,1899],{},[264,4021,1806],{},") to OpenTelemetry severity. This lets you filter by severity in your backend.",[310,4024,4025,4028,4030,4031,983,4033,983,4035,4038],{},[212,4026,4027],{},"Can I run this alongside other receivers in the same Collector?",[3946,4029],{},"\nYes, and it's recommended. A single Collector instance can run ",[264,4032,409],{},[264,4034,414],{},[264,4036,4037],{},"k8s_cluster",", and others simultaneously. They share the batch processor and exporter.",[310,4040,4041,4044,4046,4047,4050,4051,4054,4055,4058],{},[212,4042,4043],{},"How do I change the 1-hour event retention in Kubernetes?",[3946,4045],{},"\nSet ",[264,4048,4049],{},"--event-ttl"," on the API server (default: ",[264,4052,4053],{},"1h0m0s","). For example, ",[264,4056,4057],{},"--event-ttl=4h",". This is a kube-apiserver flag — change it in your cluster's control plane configuration. Note: increasing it puts more load on etcd.",[310,4060,4061,4067,4069,4070,4073,4074,4076],{},[212,4062,4063,4064,4066],{},"What is ",[264,4065,1593],{},"?",[3946,4068],{},"\nKubernetes deduplicates repeated events — instead of creating thousands of records for a CrashLoopBackOff, it increments the ",[264,4071,4072],{},"count"," field on a single event. The receiver exposes this as ",[264,4075,1593],{},". A count of 47 means that event fired 47 times.",[245,4078,4080],{"id":4079},"backend-examples","Backend Examples",[208,4082,4083],{},"Examples in this guide use Uptrace, but the Collector works with any OTLP-compatible backend:",[329,4085,4087],{"id":4086},"uptrace","Uptrace",[257,4089,4091],{"className":536,"code":4090,"language":538,"meta":262,"style":262},"exporters:\n  otlp\u002Fuptrace:\n    endpoint: api.uptrace.dev:4317\n    headers:\n      uptrace-dsn: 'https:\u002F\u002F\u003Csecret>@api.uptrace.dev?grpc=4317'\n",[264,4092,4093,4099,4105,4113,4119],{"__ignoreMap":262},[267,4094,4095,4097],{"class":269,"line":270},[267,4096,615],{"class":545},[267,4098,550],{"class":549},[267,4100,4101,4103],{"class":269,"line":474},[267,4102,623],{"class":545},[267,4104,550],{"class":549},[267,4106,4107,4109,4111],{"class":269,"line":480},[267,4108,631],{"class":545},[267,4110,565],{"class":549},[267,4112,636],{"class":277},[267,4114,4115,4117],{"class":269,"line":486},[267,4116,642],{"class":545},[267,4118,550],{"class":549},[267,4120,4121,4123,4125],{"class":269,"line":492},[267,4122,650],{"class":545},[267,4124,565],{"class":549},[267,4126,655],{"class":277},[329,4128,4130],{"id":4129},"grafana-cloud","Grafana Cloud",[257,4132,4134],{"className":536,"code":4133,"language":538,"meta":262,"style":262},"exporters:\n  otlp:\n    endpoint: otlp-gateway.grafana.net:443\n    headers:\n      authorization: \"Bearer YOUR_GRAFANA_TOKEN\"\n",[264,4135,4136,4142,4149,4158,4164],{"__ignoreMap":262},[267,4137,4138,4140],{"class":269,"line":270},[267,4139,615],{"class":545},[267,4141,550],{"class":549},[267,4143,4144,4147],{"class":269,"line":474},[267,4145,4146],{"class":545},"  otlp",[267,4148,550],{"class":549},[267,4150,4151,4153,4155],{"class":269,"line":480},[267,4152,631],{"class":545},[267,4154,565],{"class":549},[267,4156,4157],{"class":277},"otlp-gateway.grafana.net:443\n",[267,4159,4160,4162],{"class":269,"line":486},[267,4161,642],{"class":545},[267,4163,550],{"class":549},[267,4165,4166,4169,4171],{"class":269,"line":492},[267,4167,4168],{"class":545},"      authorization",[267,4170,565],{"class":549},[267,4172,4173],{"class":277},"\"Bearer YOUR_GRAFANA_TOKEN\"\n",[329,4175,4177],{"id":4176},"jaeger","Jaeger",[257,4179,4181],{"className":536,"code":4180,"language":538,"meta":262,"style":262},"exporters:\n  otlp:\n    endpoint: jaeger-collector:4317\n    tls:\n      insecure: true\n",[264,4182,4183,4189,4195,4204,4211],{"__ignoreMap":262},[267,4184,4185,4187],{"class":269,"line":270},[267,4186,615],{"class":545},[267,4188,550],{"class":549},[267,4190,4191,4193],{"class":269,"line":474},[267,4192,4146],{"class":545},[267,4194,550],{"class":549},[267,4196,4197,4199,4201],{"class":269,"line":480},[267,4198,631],{"class":545},[267,4200,565],{"class":549},[267,4202,4203],{"class":277},"jaeger-collector:4317\n",[267,4205,4206,4209],{"class":269,"line":486},[267,4207,4208],{"class":545},"    tls",[267,4210,550],{"class":549},[267,4212,4213,4216,4218],{"class":269,"line":492},[267,4214,4215],{"class":545},"      insecure",[267,4217,565],{"class":549},[267,4219,3286],{"class":284},[329,4221,4223],{"id":4222},"datadog","Datadog",[257,4225,4227],{"className":536,"code":4226,"language":538,"meta":262,"style":262},"exporters:\n  otlp:\n    endpoint: trace.agent.datadoghq.com:4317\n    headers:\n      dd-api-key: \"YOUR_DATADOG_API_KEY\"\n",[264,4228,4229,4235,4241,4250,4256],{"__ignoreMap":262},[267,4230,4231,4233],{"class":269,"line":270},[267,4232,615],{"class":545},[267,4234,550],{"class":549},[267,4236,4237,4239],{"class":269,"line":474},[267,4238,4146],{"class":545},[267,4240,550],{"class":549},[267,4242,4243,4245,4247],{"class":269,"line":480},[267,4244,631],{"class":545},[267,4246,565],{"class":549},[267,4248,4249],{"class":277},"trace.agent.datadoghq.com:4317\n",[267,4251,4252,4254],{"class":269,"line":486},[267,4253,642],{"class":545},[267,4255,550],{"class":549},[267,4257,4258,4261,4263],{"class":269,"line":492},[267,4259,4260],{"class":545},"      dd-api-key",[267,4262,565],{"class":549},[267,4264,4265],{"class":277},"\"YOUR_DATADOG_API_KEY\"\n",[329,4267,4269],{"id":4268},"multiple-backends","Multiple Backends",[257,4271,4273],{"className":536,"code":4272,"language":538,"meta":262,"style":262},"service:\n  pipelines:\n    logs:\n      receivers: [k8s_events]\n      processors: [batch]\n      exporters: [otlp\u002Fuptrace, otlp\u002Fdatadog]\n",[264,4274,4275,4281,4287,4293,4303,4313],{"__ignoreMap":262},[267,4276,4277,4279],{"class":269,"line":270},[267,4278,666],{"class":545},[267,4280,550],{"class":549},[267,4282,4283,4285],{"class":269,"line":474},[267,4284,674],{"class":545},[267,4286,550],{"class":549},[267,4288,4289,4291],{"class":269,"line":480},[267,4290,682],{"class":545},[267,4292,550],{"class":549},[267,4294,4295,4297,4299,4301],{"class":269,"line":486},[267,4296,690],{"class":545},[267,4298,693],{"class":549},[267,4300,409],{"class":277},[267,4302,698],{"class":549},[267,4304,4305,4307,4309,4311],{"class":269,"line":492},[267,4306,704],{"class":545},[267,4308,693],{"class":549},[267,4310,709],{"class":277},[267,4312,698],{"class":549},[267,4314,4315,4317,4319,4321,4323,4326],{"class":269,"line":588},[267,4316,717],{"class":545},[267,4318,693],{"class":549},[267,4320,722],{"class":277},[267,4322,983],{"class":549},[267,4324,4325],{"class":277},"otlp\u002Fdatadog",[267,4327,698],{"class":549},[205,4329,4330],{},[208,4331,4332,4335,4336,4340],{},[212,4333,4334],{},"More backends:"," See the ",[217,4337,4339],{"href":4338},"\u002Fblog\u002Fopentelemetry-backend","OpenTelemetry backends"," guide for a full list of compatible platforms.",[245,4342,4344],{"id":4343},"whats-next","What's next?",[208,4346,4347],{},"With the Kubernetes Events Receiver in place, you have full visibility into cluster lifecycle events alongside your application logs and metrics.",[208,4349,4350],{},"Next steps to complete your Kubernetes observability:",[307,4352,4353,4358,4364,4371,4378,4386,4391],{},[310,4354,4355,4356],{},"Collect container logs with the ",[217,4357,254],{"href":446},[310,4359,4360,4361],{},"Collect Linux system logs with the ",[217,4362,4363],{"href":186},"Syslog Receiver",[310,4365,4366,4367,4370],{},"Add ",[217,4368,4369],{"href":238},"OpenTelemetry instrumentation to your apps"," for trace-correlated logs",[310,4372,4373,4374],{},"Monitor cluster metrics with the ",[217,4375,4377],{"href":4376},"\u002Fget\u002Fkubernetes","Kubernetes Monitoring guide",[310,4379,4380,4381,4385],{},"Correlate events with ",[217,4382,4384],{"href":4383},"\u002Fopentelemetry\u002Fdistributed-tracing","distributed traces"," for full-stack debugging",[310,4387,4388,4389],{},"Manage Collectors at scale with the ",[217,4390,2610],{"href":2609},[310,4392,4393,4394,4399],{},"See the ",[217,4395,4398],{"href":4396,"rel":4397},"https:\u002F\u002Fgithub.com\u002Fopen-telemetry\u002Fopentelemetry-collector-contrib\u002Ftree\u002Fmain\u002Freceiver\u002Fk8seventsreceiver",[2593],"official k8seventsreceiver docs"," for all configuration options",[4401,4402,4403],"style",{},"html pre.shiki code .s7eDp, html code.shiki .s7eDp{--shiki-default:#6F42C1}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}html pre.shiki code .sYu0t, html code.shiki .sYu0t{--shiki-default:#005CC5}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .shJU0, html code.shiki .shJU0{--shiki-default:#22863A}html pre.shiki code .sgsFI, html code.shiki .sgsFI{--shiki-default:#24292E}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}html pre.shiki code .sD7c4, html code.shiki .sD7c4{--shiki-default:#D73A49}",{"title":262,"searchDepth":486,"depth":474,"links":4405},[4406,4409,4410,4411,4414,4415,4416,4421,4425,4426,4431,4437,4438,4445],{"id":247,"depth":474,"text":248,"children":4407},[4408],{"id":331,"depth":480,"text":332},{"id":451,"depth":474,"text":452},{"id":501,"depth":474,"text":502},{"id":739,"depth":474,"text":515,"children":4412},[4413],{"id":1486,"depth":480,"text":1487},{"id":1529,"depth":474,"text":1530},{"id":1820,"depth":474,"text":1821},{"id":2001,"depth":474,"text":735,"children":4417},[4418,4419,4420],{"id":2004,"depth":480,"text":2005},{"id":2053,"depth":480,"text":2054},{"id":2112,"depth":480,"text":2113},{"id":2158,"depth":474,"text":2159,"children":4422},[4423,4424],{"id":2162,"depth":480,"text":2163},{"id":2283,"depth":480,"text":2284},{"id":2346,"depth":474,"text":2347},{"id":2846,"depth":474,"text":2847,"children":4427},[4428,4429,4430],{"id":2850,"depth":480,"text":2851},{"id":3031,"depth":480,"text":3032},{"id":3224,"depth":480,"text":3225},{"id":3469,"depth":474,"text":3470,"children":4432},[4433,4434,4435,4436],{"id":3473,"depth":480,"text":3474},{"id":3762,"depth":480,"text":3763},{"id":3873,"depth":480,"text":3874},{"id":3888,"depth":480,"text":3889},{"id":3935,"depth":474,"text":3936},{"id":4079,"depth":474,"text":4080,"children":4439},[4440,4441,4442,4443,4444],{"id":4086,"depth":480,"text":4087},{"id":4129,"depth":480,"text":4130},{"id":4176,"depth":480,"text":4177},{"id":4222,"depth":480,"text":4223},{"id":4268,"depth":480,"text":4269},{"id":4343,"depth":474,"text":4344},"2026-04-05T00:00:00.000Z","Complete guide to the OpenTelemetry Kubernetes Events Receiver. Collect and analyze K8s events — CrashLoopBackOff, OOMKilling, image pull failures — with RBAC setup, filtering, and alerting examples.","md","\u002Fguides\u002Fopentelemetry-k8seventsreceiver\u002Fcover.webp",{"keyword_difficulty":4451,"readingTime":4452},"medium",{"text":4453,"minutes":4454,"time":4455,"words":4456},"11 min read",10.055,603300,2011,{"title":85,"description":4447},"ZHDpz8WoTo2_D29igGNvQ4288Y5I0-8DcV4DdiqShsI",[4460,4462],{"title":81,"path":82,"stem":83,"description":4461,"children":-1},"Learn how to monitor HTTP endpoints with the OpenTelemetry Collector HTTPcheck receiver for uptime checks, response validation, and TLS certificate monitoring.",{"title":89,"path":90,"stem":91,"description":4463,"children":-1},"Monitor Apache Kafka performance using OpenTelemetry Collector kafkametrics receiver. Track broker metrics, consumer lag, and partition health with real-time observability.",{"id":4465,"node_id":4466,"name":4086,"full_name":4467,"private":4468,"owner":4469,"html_url":4486,"description":4487,"fork":4468,"url":4488,"forks_url":4489,"keys_url":4490,"collaborators_url":4491,"teams_url":4492,"hooks_url":4493,"issue_events_url":4494,"events_url":4495,"assignees_url":4496,"branches_url":4497,"tags_url":4498,"blobs_url":4499,"git_tags_url":4500,"git_refs_url":4501,"trees_url":4502,"statuses_url":4503,"languages_url":4504,"stargazers_url":4505,"contributors_url":4506,"subscribers_url":4507,"subscription_url":4508,"commits_url":4509,"git_commits_url":4510,"comments_url":4511,"issue_comment_url":4512,"contents_url":4513,"compare_url":4514,"merges_url":4515,"archive_url":4516,"downloads_url":4517,"issues_url":4518,"pulls_url":4519,"milestones_url":4520,"notifications_url":4521,"labels_url":4522,"releases_url":4523,"deployments_url":4524,"created_at":4525,"updated_at":4526,"pushed_at":4527,"git_url":4528,"ssh_url":4529,"clone_url":4530,"svn_url":4486,"homepage":4531,"size":4532,"stargazers_count":4533,"watchers_count":4533,"language":4534,"has_issues":577,"has_projects":577,"has_downloads":577,"has_wiki":577,"has_pages":4468,"has_discussions":577,"forks_count":4535,"mirror_url":200,"archived":4468,"disabled":4468,"open_issues_count":1068,"license":4536,"allow_forking":577,"is_template":4468,"web_commit_signoff_required":4468,"has_pull_requests":577,"pull_request_creation_policy":4542,"topics":4543,"visibility":4485,"forks":4535,"open_issues":1068,"watchers":4533,"default_branch":4558,"temp_clone_token":200,"custom_properties":4559,"organization":4560,"network_count":4535,"subscribers_count":972},440841550,"R_kgDOGka1Tg","uptrace\u002Fuptrace",false,{"login":4086,"id":4470,"node_id":4471,"avatar_url":4472,"gravatar_id":262,"url":4473,"html_url":4474,"followers_url":4475,"following_url":4476,"gists_url":4477,"starred_url":4478,"subscriptions_url":4479,"organizations_url":4480,"repos_url":4481,"events_url":4482,"received_events_url":4483,"type":4484,"user_view_type":4485,"site_admin":4468},64948717,"MDEyOk9yZ2FuaXphdGlvbjY0OTQ4NzE3","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F64948717?v=4","https:\u002F\u002Fapi.github.com\u002Fusers\u002Fuptrace","https:\u002F\u002Fgithub.com\u002Fuptrace","https:\u002F\u002Fapi.github.com\u002Fusers\u002Fuptrace\u002Ffollowers","https:\u002F\u002Fapi.github.com\u002Fusers\u002Fuptrace\u002Ffollowing{\u002Fother_user}","https:\u002F\u002Fapi.github.com\u002Fusers\u002Fuptrace\u002Fgists{\u002Fgist_id}","https:\u002F\u002Fapi.github.com\u002Fusers\u002Fuptrace\u002Fstarred{\u002Fowner}{\u002Frepo}","https:\u002F\u002Fapi.github.com\u002Fusers\u002Fuptrace\u002Fsubscriptions","https:\u002F\u002Fapi.github.com\u002Fusers\u002Fuptrace\u002Forgs","https:\u002F\u002Fapi.github.com\u002Fusers\u002Fuptrace\u002Frepos","https:\u002F\u002Fapi.github.com\u002Fusers\u002Fuptrace\u002Fevents{\u002Fprivacy}","https:\u002F\u002Fapi.github.com\u002Fusers\u002Fuptrace\u002Freceived_events","Organization","public","https:\u002F\u002Fgithub.com\u002Fuptrace\u002Fuptrace","Open source APM: OpenTelemetry traces, metrics, and logs","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fuptrace\u002Fuptrace","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fuptrace\u002Fuptrace\u002Fforks","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fuptrace\u002Fuptrace\u002Fkeys{\u002Fkey_id}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fuptrace\u002Fuptrace\u002Fcollaborators{\u002Fcollaborator}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fuptrace\u002Fuptrace\u002Fteams","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fuptrace\u002Fuptrace\u002Fhooks","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fuptrace\u002Fuptrace\u002Fissues\u002Fevents{\u002Fnumber}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fuptrace\u002Fuptrace\u002Fevents","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fuptrace\u002Fuptrace\u002Fassignees{\u002Fuser}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fuptrace\u002Fuptrace\u002Fbranches{\u002Fbranch}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fuptrace\u002Fuptrace\u002Ftags","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fuptrace\u002Fuptrace\u002Fgit\u002Fblobs{\u002Fsha}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fuptrace\u002Fuptrace\u002Fgit\u002Ftags{\u002Fsha}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fuptrace\u002Fuptrace\u002Fgit\u002Frefs{\u002Fsha}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fuptrace\u002Fuptrace\u002Fgit\u002Ftrees{\u002Fsha}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fuptrace\u002Fuptrace\u002Fstatuses\u002F{sha}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fuptrace\u002Fuptrace\u002Flanguages","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fuptrace\u002Fuptrace\u002Fstargazers","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fuptrace\u002Fuptrace\u002Fcontributors","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fuptrace\u002Fuptrace\u002Fsubscribers","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fuptrace\u002Fuptrace\u002Fsubscription","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fuptrace\u002Fuptrace\u002Fcommits{\u002Fsha}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fuptrace\u002Fuptrace\u002Fgit\u002Fcommits{\u002Fsha}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fuptrace\u002Fuptrace\u002Fcomments{\u002Fnumber}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fuptrace\u002Fuptrace\u002Fissues\u002Fcomments{\u002Fnumber}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fuptrace\u002Fuptrace\u002Fcontents\u002F{+path}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fuptrace\u002Fuptrace\u002Fcompare\u002F{base}...{head}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fuptrace\u002Fuptrace\u002Fmerges","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fuptrace\u002Fuptrace\u002F{archive_format}{\u002Fref}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fuptrace\u002Fuptrace\u002Fdownloads","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fuptrace\u002Fuptrace\u002Fissues{\u002Fnumber}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fuptrace\u002Fuptrace\u002Fpulls{\u002Fnumber}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fuptrace\u002Fuptrace\u002Fmilestones{\u002Fnumber}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fuptrace\u002Fuptrace\u002Fnotifications{?since,all,participating}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fuptrace\u002Fuptrace\u002Flabels{\u002Fname}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fuptrace\u002Fuptrace\u002Freleases{\u002Fid}","https:\u002F\u002Fapi.github.com\u002Frepos\u002Fuptrace\u002Fuptrace\u002Fdeployments","2021-12-22T11:53:18Z","2026-04-07T03:53:19Z","2026-03-13T23:34:49Z","git:\u002F\u002Fgithub.com\u002Fuptrace\u002Fuptrace.git","git@github.com:uptrace\u002Fuptrace.git","https:\u002F\u002Fgithub.com\u002Fuptrace\u002Fuptrace.git","https:\u002F\u002Fuptrace.dev\u002Fget\u002Fhosted\u002Fopen-source-apm",5919,4160,"Go",201,{"key":4537,"name":4538,"spdx_id":4539,"url":4540,"node_id":4541},"agpl-3.0","GNU Affero General Public License v3.0","AGPL-3.0","https:\u002F\u002Fapi.github.com\u002Flicenses\u002Fagpl-3.0","MDc6TGljZW5zZTE=","all",[4544,4545,4546,4547,4548,4549,4550,4551,4552,4553,4554,4555,4556,4557],"apm","application-monitoring","clickhouse","distributed-tracing","golang","logs","metrics","monitoring","observability","opentelemetry","performance-monitoring","self-hosted","tracing","vue","master",{},{"login":4086,"id":4470,"node_id":4471,"avatar_url":4472,"gravatar_id":262,"url":4473,"html_url":4474,"followers_url":4475,"following_url":4476,"gists_url":4477,"starred_url":4478,"subscriptions_url":4479,"organizations_url":4480,"repos_url":4481,"events_url":4482,"received_events_url":4483,"type":4484,"user_view_type":4485,"site_admin":4468},1775561037071]