From 3a7c8a26b2cfbb45ee7c666827d23d2e41bfb3ef Mon Sep 17 00:00:00 2001 From: kruskall <99559985+kruskall@users.noreply.github.com> Date: Thu, 28 Sep 2023 17:11:53 +0200 Subject: [PATCH] fix: remove invalid metadata lines from loadgen events (#39) --- internal/loadgen/events/go-2.0.0.ndjson | 24 ---- internal/loadgen/events/nodejs-3.29.0.ndjson | 49 ------- internal/loadgen/events/python-6.7.2.ndjson | 136 ------------------- internal/loadgen/events/ruby-4.5.0.ndjson | 37 ----- 4 files changed, 246 deletions(-) diff --git a/internal/loadgen/events/go-2.0.0.ndjson b/internal/loadgen/events/go-2.0.0.ndjson index 8b9e2e0..1257ca4 100644 --- a/internal/loadgen/events/go-2.0.0.ndjson +++ b/internal/loadgen/events/go-2.0.0.ndjson @@ -13,7 +13,6 @@ {"transaction":{"duration":4.140083,"id":"9850099ec17d6583","name":"GET /api/products/:id/customers","span_count":{"dropped":0,"started":3},"timestamp":1646055421980161,"trace_id":"bd5afb176eb4cd16cb068b24d8e5c77c","type":"request","context":{"request":{"method":"GET","url":{"hostname":"opbeans-go","pathname":"/api/products/2/customers","port":"3000","protocol":"http","full":"http://opbeans-go:3000/api/products/2/customers"},"headers":{"Traceparent":"00-bd5afb176eb4cd16cb068b24d8e5c77c-111d7262ba8fd2bb-01","Tracestate":"es=s:1","Elastic-Apm-Traceparent":"00-bd5afb176eb4cd16cb068b24d8e5c77c-111d7262ba8fd2bb-01","Connection":"close"},"http_version":"1.1","socket":{"remote_address":"172.23.0.10"}},"response":{"status_code":502},"service":{"framework":{"name":"gin","version":"v1.7.7"}}},"outcome":"failure","parent_id":"111d7262ba8fd2bb","result":"HTTP 5xx","sample_rate":1}} {"span":{"duration":1.334708,"id":"3cac7d8b005d9f72","name":"SELECT FROM orders","timestamp":1646055422836437,"trace_id":"c5e38af6aef0bdb62a93096d55ded513","type":"db","action":"query","context":{"db":{"statement":"SELECT\n orders.id, orders.created_at,\n customers.id, customers.full_name\nFROM orders JOIN customers ON orders.customer_id=customers.id\nLIMIT 1000\n","type":"sql","user":"postgres"},"destination":{"address":"postgres","port":5432,"service":{"name":"postgresql","resource":"postgresql","type":"db"}}},"outcome":"success","parent_id":"c5e38af6aef0bdb6","sample_rate":1,"stacktrace":[],"subtype":"postgresql","transaction_id":"c5e38af6aef0bdb6"}} {"transaction":{"duration":27.423541999999998,"id":"c5e38af6aef0bdb6","name":"GET /api/orders","span_count":{"dropped":0,"started":1},"timestamp":1646055422836411,"trace_id":"c5e38af6aef0bdb62a93096d55ded513","type":"request","context":{"request":{"method":"GET","url":{"hostname":"localhost","pathname":"/api/orders","port":"3000","protocol":"http","full":"http://localhost:3000/api/orders"},"headers":{"User-Agent":"Go-http-client/1.1","Accept-Encoding":"gzip"},"http_version":"1.1","socket":{"remote_address":"127.0.0.1"}},"response":{"headers":{"Content-Type":"application/json; charset=utf-8"},"status_code":200},"service":{"framework":{"name":"gin","version":"v1.7.7"}}},"outcome":"success","result":"HTTP 2xx","sample_rate":1}} -{"metadata":{"system":{"architecture":"arm64","hostname":"3ff988a6070f","platform":"linux"},"process":{"pid":1,"argv":["/opbeans-go","-log-json","-log-level=debug","-listen=:3000","-frontend=/opbeans-frontend","-db=postgres:","-cache=redis://redis:6379"],"ppid":0,"title":"opbeans-go"},"service":{"agent":{"name":"go","version":"2.0.0"},"environment":"production","language":{"name":"go","version":"go1.17.7"},"name":"opbeans-go","runtime":{"name":"gc","version":"go1.17.7"},"version":"None"}}} {"metricset":{"samples":{"span.self_time.count":{"value":1},"span.self_time.sum.us":{"value":1334.000000708}},"timestamp":1646055432713885,"span":{"subtype":"postgresql","type":"db"},"transaction":{"name":"GET /api/orders","type":"request"}}} {"metricset":{"samples":{"span.self_time.count":{"value":2},"span.self_time.sum.us":{"value":39037.00000071}},"timestamp":1646055432713885,"span":{"type":"app"},"transaction":{"name":"GET /api/orders","type":"request"}}} {"metricset":{"samples":{"span.self_time.count":{"value":3},"span.self_time.sum.us":{"value":14666.000000833}},"timestamp":1646055432713885,"span":{"subtype":"http","type":"external"},"transaction":{"name":"GET /api/orders","type":"request"}}} @@ -24,7 +23,6 @@ {"metricset":{"samples":{"golang.heap.allocations.frees":{"value":28919},"golang.heap.allocations.allocated":{"value":5.480272e+06},"golang.heap.system.stack":{"value":589824},"golang.heap.gc.total_pause.ns":{"value":3.18371e+06},"system.process.memory.size":{"value":1.265262592e+09},"golang.heap.system.obtained":{"value":1.1993088e+07},"golang.heap.gc.next_gc_limit":{"value":9.7284e+06},"golang.heap.gc.cpu_fraction":{"value":0.0003350751466635942},"golang.heap.system.released":{"value":4.186112e+06},"golang.goroutines":{"value":9},"system.cpu.total.norm.pct":{"value":0.905876235049402},"system.process.cpu.total.norm.pct":{"value":0.000953371468192061},"system.memory.actual.free":{"value":8.333594624e+09},"golang.heap.allocations.total":{"value":7.717776e+06},"golang.heap.allocations.active":{"value":7.307264e+06},"golang.heap.gc.total_count":{"value":3},"system.memory.total":{"value":1.2544401408e+10},"system.process.memory.rss.bytes":{"value":1.845248e+07},"golang.heap.allocations.mallocs":{"value":42268},"golang.heap.allocations.objects":{"value":13349},"golang.heap.allocations.idle":{"value":4.685824e+06},"golang.heap.system.total":{"value":2.0005896e+07}},"timestamp":1646055432713885}} {"span":{"duration":1.922958,"id":"221583a900f0e3ca","name":"SELECT FROM orders","timestamp":1646055432992697,"trace_id":"ed70e9f1ab4b68ce0a6954484372f463","type":"db","action":"query","context":{"db":{"statement":"SELECT\n orders.id, orders.created_at,\n customers.id, customers.full_name\nFROM orders JOIN customers ON orders.customer_id=customers.id\nLIMIT 1000\n","type":"sql","user":"postgres"},"destination":{"address":"postgres","port":5432,"service":{"name":"postgresql","resource":"postgresql","type":"db"}}},"outcome":"success","parent_id":"ed70e9f1ab4b68ce","sample_rate":1,"stacktrace":[],"subtype":"postgresql","transaction_id":"ed70e9f1ab4b68ce"}} {"transaction":{"duration":14.846875,"id":"ed70e9f1ab4b68ce","name":"GET /api/orders","span_count":{"dropped":0,"started":1},"timestamp":1646055432992648,"trace_id":"ed70e9f1ab4b68ce0a6954484372f463","type":"request","context":{"request":{"method":"GET","url":{"hostname":"localhost","pathname":"/api/orders","port":"3000","protocol":"http","full":"http://localhost:3000/api/orders"},"headers":{"User-Agent":"Go-http-client/1.1","Accept-Encoding":"gzip"},"http_version":"1.1","socket":{"remote_address":"127.0.0.1"}},"response":{"headers":{"Content-Type":"application/json; charset=utf-8"},"status_code":200},"service":{"framework":{"name":"gin","version":"v1.7.7"}}},"outcome":"success","result":"HTTP 2xx","sample_rate":1}} -{"metadata":{"system":{"architecture":"arm64","hostname":"3ff988a6070f","platform":"linux"},"process":{"pid":1,"argv":["/opbeans-go","-log-json","-log-level=debug","-listen=:3000","-frontend=/opbeans-frontend","-db=postgres:","-cache=redis://redis:6379"],"ppid":0,"title":"opbeans-go"},"service":{"agent":{"name":"go","version":"2.0.0"},"environment":"production","language":{"name":"go","version":"go1.17.7"},"name":"opbeans-go","runtime":{"name":"gc","version":"go1.17.7"},"version":"None"}}} {"span":{"duration":1.296084,"id":"d1ddd3d1a21a700b","name":"SELECT FROM orders","timestamp":1646055443148442,"trace_id":"5c60ecb39d4a689c8e2b8740178f6807","type":"db","action":"query","context":{"db":{"statement":"SELECT\n orders.id, orders.created_at,\n customers.id, customers.full_name\nFROM orders JOIN customers ON orders.customer_id=customers.id\nLIMIT 1000\n","type":"sql","user":"postgres"},"destination":{"address":"postgres","port":5432,"service":{"name":"postgresql","resource":"postgresql","type":"db"}}},"outcome":"success","parent_id":"5c60ecb39d4a689c","sample_rate":1,"stacktrace":[],"subtype":"postgresql","transaction_id":"5c60ecb39d4a689c"}} {"transaction":{"duration":4.586584,"id":"5c60ecb39d4a689c","name":"GET /api/orders","span_count":{"dropped":0,"started":1},"timestamp":1646055443148375,"trace_id":"5c60ecb39d4a689c8e2b8740178f6807","type":"request","context":{"request":{"method":"GET","url":{"hostname":"localhost","pathname":"/api/orders","port":"3000","protocol":"http","full":"http://localhost:3000/api/orders"},"headers":{"User-Agent":"Go-http-client/1.1","Accept-Encoding":"gzip"},"http_version":"1.1","socket":{"remote_address":"127.0.0.1"}},"response":{"headers":{"Content-Type":"application/json; charset=utf-8"},"status_code":200},"service":{"framework":{"name":"gin","version":"v1.7.7"}}},"outcome":"success","result":"HTTP 2xx","sample_rate":1}} {"span":{"duration":7.547125,"id":"902ac14d52cc0eab","name":"SELECT FROM products","timestamp":1646055452991210,"trace_id":"3fcfaa5c98d6208f2362d3284089c8f0","type":"db","action":"query","context":{"db":{"statement":"SELECT COUNT(*) FROM products","type":"sql","user":"postgres"},"destination":{"address":"postgres","port":5432,"service":{"name":"postgresql","resource":"postgresql","type":"db"}}},"outcome":"success","parent_id":"7e052774b93c625b","sample_rate":1,"stacktrace":[{"filename":"span.go","lineno":368,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/v2@v2.0.0-20220125052152-dbce0fc5646c/span.go","function":"(*Span).End","library_frame":true,"module":"go.elastic.co/apm/v2"},{"filename":"conn.go","lineno":119,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmsql/v2@v2.0.0-20220125052152-dbce0fc5646c/conn.go","function":"(*conn).finishSpan","library_frame":true,"module":"go.elastic.co/apm/module/apmsql/v2"},{"filename":"conn.go","lineno":139,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmsql/v2@v2.0.0-20220125052152-dbce0fc5646c/conn.go","function":"(*conn).QueryContext","library_frame":true,"module":"go.elastic.co/apm/module/apmsql/v2"},{"filename":"ctxutil.go","lineno":48,"abs_path":"/usr/local/go/src/database/sql/ctxutil.go","function":"ctxDriverQuery","library_frame":true,"module":"database/sql"},{"filename":"sql.go","lineno":1722,"abs_path":"/usr/local/go/src/database/sql/sql.go","function":"(*DB).queryDC.func1","library_frame":true,"module":"database/sql"},{"filename":"sql.go","lineno":3396,"abs_path":"/usr/local/go/src/database/sql/sql.go","function":"withLock","library_frame":true,"module":"database/sql"},{"filename":"sql.go","lineno":1717,"abs_path":"/usr/local/go/src/database/sql/sql.go","function":"(*DB).queryDC","library_frame":true,"module":"database/sql"},{"filename":"sql.go","lineno":1700,"abs_path":"/usr/local/go/src/database/sql/sql.go","function":"(*DB).query","library_frame":true,"module":"database/sql"},{"filename":"sql.go","lineno":1674,"abs_path":"/usr/local/go/src/database/sql/sql.go","function":"(*DB).QueryContext","library_frame":true,"module":"database/sql"},{"filename":"sql.go","lineno":1778,"abs_path":"/usr/local/go/src/database/sql/sql.go","function":"(*DB).QueryRowContext","library_frame":true,"module":"database/sql"},{"filename":"stats.go","lineno":32,"abs_path":"/src/opbeans-go/stats.go","function":"getStats","module":"main"},{"filename":"api.go","lineno":66,"abs_path":"/src/opbeans-go/api.go","function":"apiHandlers.getStats","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"main.go","lineno":200,"abs_path":"/src/opbeans-go/main.go","function":"Main.func2","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"main.go","lineno":174,"abs_path":"/src/opbeans-go/main.go","function":"Main.func1","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"logger.go","lineno":36,"abs_path":"/src/opbeans-go/logger.go","function":"logrusMiddleware","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"middleware.go","lineno":104,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmgin/v2@v2.0.0-20220125052152-dbce0fc5646c/middleware.go","function":"(*middleware).handle","library_frame":true,"module":"go.elastic.co/apm/module/apmgin/v2"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"cache.go","lineno":128,"abs_path":"/go/pkg/mod/github.com/gin-contrib/cache@v1.1.0/cache.go","function":"Cache.func1","library_frame":true,"module":"github.com/gin-contrib/cache"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"gin.go","lineno":555,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/gin.go","function":"(*Engine).handleHTTPRequest","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"gin.go","lineno":511,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/gin.go","function":"(*Engine).ServeHTTP","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"server.go","lineno":2879,"abs_path":"/usr/local/go/src/net/http/server.go","function":"serverHandler.ServeHTTP","library_frame":true,"module":"net/http"},{"filename":"server.go","lineno":1930,"abs_path":"/usr/local/go/src/net/http/server.go","function":"(*conn).serve","library_frame":true,"module":"net/http"},{"filename":"asm_arm64.s","lineno":1133,"abs_path":"/usr/local/go/src/runtime/asm_arm64.s","function":"goexit","library_frame":true,"module":"runtime"}],"subtype":"postgresql","transaction_id":"7e052774b93c625b"}} @@ -32,7 +30,6 @@ {"span":{"duration":1.511625,"id":"f8156f876a05b78f","name":"SELECT FROM orders","timestamp":1646055453001995,"trace_id":"3fcfaa5c98d6208f2362d3284089c8f0","type":"db","action":"query","context":{"db":{"statement":"SELECT COUNT(*) FROM orders","type":"sql","user":"postgres"},"destination":{"address":"postgres","port":5432,"service":{"name":"postgresql","resource":"postgresql","type":"db"}}},"outcome":"success","parent_id":"7e052774b93c625b","sample_rate":1,"stacktrace":[],"subtype":"postgresql","transaction_id":"7e052774b93c625b"}} {"span":{"duration":2.094542,"id":"118eafc13173f1f0","name":"SELECT FROM products","timestamp":1646055453003546,"trace_id":"3fcfaa5c98d6208f2362d3284089c8f0","type":"db","action":"query","context":{"db":{"statement":"\nSELECT\n SUM(selling_price), SUM(cost), SUM(selling_price-cost)\nFROM products JOIN order_lines ON products.id=order_lines.product_id\n","type":"sql","user":"postgres"},"destination":{"address":"postgres","port":5432,"service":{"name":"postgresql","resource":"postgresql","type":"db"}}},"outcome":"success","parent_id":"7e052774b93c625b","sample_rate":1,"stacktrace":[],"subtype":"postgresql","transaction_id":"7e052774b93c625b"}} {"transaction":{"duration":21.154042,"id":"7e052774b93c625b","name":"GET /api/stats","span_count":{"dropped":0,"started":4},"timestamp":1646055452987422,"trace_id":"3fcfaa5c98d6208f2362d3284089c8f0","type":"request","context":{"request":{"method":"GET","url":{"hostname":"opbeans-go","pathname":"/api/stats","port":"3000","protocol":"http","full":"http://opbeans-go:3000/api/stats"},"headers":{"Elastic-Apm-Traceparent":"00-3fcfaa5c98d6208f2362d3284089c8f0-17cf98ca8a8debf2-01","Connection":"close","Traceparent":"00-3fcfaa5c98d6208f2362d3284089c8f0-17cf98ca8a8debf2-01","Tracestate":"es=s:1"},"http_version":"1.1","socket":{"remote_address":"172.23.0.10"}},"response":{"headers":{"Content-Type":"application/json; charset=utf-8"},"status_code":200},"service":{"framework":{"name":"gin","version":"v1.7.7"}},"tags":{"served_from_cache":"false"}},"outcome":"success","parent_id":"17cf98ca8a8debf2","result":"HTTP 2xx","sample_rate":1}} -{"metadata":{"system":{"architecture":"arm64","hostname":"3ff988a6070f","platform":"linux"},"process":{"pid":1,"argv":["/opbeans-go","-log-json","-log-level=debug","-listen=:3000","-frontend=/opbeans-frontend","-db=postgres:","-cache=redis://redis:6379"],"ppid":0,"title":"opbeans-go"},"service":{"agent":{"name":"go","version":"2.0.0"},"environment":"production","language":{"name":"go","version":"go1.17.7"},"name":"opbeans-go","runtime":{"name":"gc","version":"go1.17.7"},"version":"None"}}} {"span":{"duration":0.658625,"id":"6890da54f8f1c713","name":"DNS opbeans-python","timestamp":1646055453297856,"trace_id":"939cf5cf0f02477face9fe243f8e1250","type":"external","action":"dns","outcome":"success","parent_id":"d026dc7ec2576951","sample_rate":1,"stacktrace":[],"subtype":"http","transaction_id":"939cf5cf0f02477f"}} {"span":{"duration":0.33158299999999996,"id":"665c0a6480d252e8","name":"Connect 172.23.0.11:3000","timestamp":1646055453298521,"trace_id":"939cf5cf0f02477face9fe243f8e1250","type":"external","action":"connect","outcome":"success","parent_id":"d026dc7ec2576951","sample_rate":1,"stacktrace":[],"subtype":"http","transaction_id":"939cf5cf0f02477f"}} {"span":{"duration":5423.497128,"id":"399dfa16353e5017","name":"Request","timestamp":1646055453298865,"trace_id":"939cf5cf0f02477face9fe243f8e1250","type":"external","action":"request","outcome":"success","parent_id":"d026dc7ec2576951","sample_rate":1,"stacktrace":[{"filename":"span.go","lineno":368,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/v2@v2.0.0-20220125052152-dbce0fc5646c/span.go","function":"(*Span).End","library_frame":true,"module":"go.elastic.co/apm/v2"},{"filename":"clienttrace.go","lineno":130,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/clienttrace.go","function":"withClientTrace.func8","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"transport.go","lineno":2272,"abs_path":"/usr/local/go/src/net/http/transport.go","function":"(*persistConn).readResponse","library_frame":true,"module":"net/http"},{"filename":"transport.go","lineno":2102,"abs_path":"/usr/local/go/src/net/http/transport.go","function":"(*persistConn).readLoop","library_frame":true,"module":"net/http"},{"filename":"asm_arm64.s","lineno":1133,"abs_path":"/usr/local/go/src/runtime/asm_arm64.s","function":"goexit","library_frame":true,"module":"runtime"}],"subtype":"http","transaction_id":"939cf5cf0f02477f"}} @@ -45,7 +42,6 @@ {"metricset":{"samples":{"span.self_time.count":{"value":5},"span.self_time.sum.us":{"value":5.425526000000461e+06}},"timestamp":1646055462723469,"span":{"subtype":"http","type":"external"},"transaction":{"name":"GET /api/orders","type":"request"}}} {"metricset":{"samples":{"span.self_time.count":{"value":3},"span.self_time.sum.us":{"value":16747.000000459}},"timestamp":1646055462723469,"span":{"type":"app"},"transaction":{"name":"GET /api/orders","type":"request"}}} {"metricset":{"samples":{"system.memory.total":{"value":1.2544401408e+10},"golang.heap.allocations.mallocs":{"value":67354},"golang.heap.allocations.frees":{"value":36071},"golang.heap.allocations.total":{"value":9.880784e+06},"golang.heap.system.total":{"value":2.0005896e+07},"golang.heap.system.obtained":{"value":1.1993088e+07},"golang.goroutines":{"value":11},"system.cpu.total.norm.pct":{"value":0.9246592954487015},"system.process.memory.size":{"value":1.265262592e+09},"system.process.memory.rss.bytes":{"value":2.0901888e+07},"golang.heap.allocations.allocated":{"value":7.64328e+06},"golang.heap.system.released":{"value":2.392064e+06},"system.process.cpu.total.norm.pct":{"value":0.0005142710208279763},"golang.heap.allocations.objects":{"value":31283},"golang.heap.allocations.idle":{"value":2.531328e+06},"golang.heap.system.stack":{"value":589824},"golang.heap.gc.total_pause.ns":{"value":3.18371e+06},"system.memory.actual.free":{"value":7.93065472e+09},"golang.heap.allocations.active":{"value":9.46176e+06},"golang.heap.gc.next_gc_limit":{"value":9.7284e+06},"golang.heap.gc.total_count":{"value":3},"golang.heap.gc.cpu_fraction":{"value":0.0003350751466635942}},"timestamp":1646055462723469}} -{"metadata":{"system":{"architecture":"arm64","hostname":"3ff988a6070f","platform":"linux"},"process":{"pid":1,"argv":["/opbeans-go","-log-json","-log-level=debug","-listen=:3000","-frontend=/opbeans-frontend","-db=postgres:","-cache=redis://redis:6379"],"ppid":0,"title":"opbeans-go"},"service":{"agent":{"name":"go","version":"2.0.0"},"environment":"production","language":{"name":"go","version":"go1.17.7"},"name":"opbeans-go","runtime":{"name":"gc","version":"go1.17.7"},"version":"None"}}} {"span":{"duration":2.0115,"id":"3bad2ceddd53c746","name":"SELECT FROM orders","timestamp":1646055466288825,"trace_id":"379b8f8b2c1ebcec0025bd8da44d7aba","type":"db","action":"query","context":{"db":{"statement":"SELECT\n orders.id, orders.created_at,\n customers.id, customers.full_name\nFROM orders JOIN customers ON orders.customer_id=customers.id\nLIMIT 1000\n","type":"sql","user":"postgres"},"destination":{"address":"postgres","port":5432,"service":{"name":"postgresql","resource":"postgresql","type":"db"}}},"outcome":"success","parent_id":"379b8f8b2c1ebcec","sample_rate":1,"stacktrace":[],"subtype":"postgresql","transaction_id":"379b8f8b2c1ebcec"}} {"transaction":{"duration":5.897459,"id":"379b8f8b2c1ebcec","name":"GET /api/orders","span_count":{"dropped":0,"started":1},"timestamp":1646055466288751,"trace_id":"379b8f8b2c1ebcec0025bd8da44d7aba","type":"request","context":{"request":{"method":"GET","url":{"hostname":"localhost","pathname":"/api/orders","port":"3000","protocol":"http","full":"http://localhost:3000/api/orders"},"headers":{"User-Agent":"Go-http-client/1.1","Accept-Encoding":"gzip"},"http_version":"1.1","socket":{"remote_address":"127.0.0.1"}},"response":{"headers":{"Content-Type":"application/json; charset=utf-8"},"status_code":200},"service":{"framework":{"name":"gin","version":"v1.7.7"}}},"outcome":"success","result":"HTTP 2xx","sample_rate":1}} {"span":{"duration":3.199291,"id":"da3677392e4f9699","name":"SELECT FROM products","timestamp":1646055470515500,"trace_id":"418823839120a4f38d3c233687223640","type":"db","action":"query","context":{"db":{"statement":"SELECT\n\t id, sku, name, stock, SUM(order_lines.amount) AS sold\nFROM products JOIN order_lines ON id=product_id GROUP BY products.id ORDER BY sold DESC\nLIMIT 3\n","type":"sql","user":"postgres"},"destination":{"address":"postgres","port":5432,"service":{"name":"postgresql","resource":"postgresql","type":"db"}}},"outcome":"success","parent_id":"3887ae4c8a6ecc2d","sample_rate":1,"stacktrace":[],"subtype":"postgresql","transaction_id":"3887ae4c8a6ecc2d"}} @@ -62,10 +58,8 @@ {"span":{"duration":1.747959,"id":"2fac2618dbb46c4e","name":"GET opbeans-ruby:3000","timestamp":1646055474358414,"trace_id":"bc32c2ac722b33079a450896a288f2fd","type":"external","context":{"destination":{"address":"opbeans-ruby","port":3000,"service":{"name":"http://opbeans-ruby:3000","resource":"opbeans-ruby:3000","type":"external"}},"http":{"url":"http://opbeans-ruby:3000/api/orders"}},"outcome":"success","parent_id":"05b88a55a43ccec9","sample_rate":1,"stacktrace":[],"subtype":"http","transaction_id":"05b88a55a43ccec9"}} {"error":{"id":"8bf5ac437b6e6672f2ff262e37802f51","timestamp":1646055474357144,"culprit":"logrusMiddleware","log":{"message":"GET /api/orders (502)","level":"error","stacktrace":[{"filename":"hook.go","lineno":102,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmlogrus/v2@v2.0.0-20220125052152-dbce0fc5646c/hook.go","function":"(*Hook).Fire","library_frame":true,"module":"go.elastic.co/apm/module/apmlogrus/v2"},{"filename":"hooks.go","lineno":28,"abs_path":"/go/pkg/mod/github.com/sirupsen/logrus@v1.8.1/hooks.go","function":"LevelHooks.Fire","library_frame":true,"module":"github.com/sirupsen/logrus"},{"filename":"entry.go","lineno":272,"abs_path":"/go/pkg/mod/github.com/sirupsen/logrus@v1.8.1/entry.go","function":"(*Entry).fireHooks","library_frame":true,"module":"github.com/sirupsen/logrus"},{"filename":"entry.go","lineno":241,"abs_path":"/go/pkg/mod/github.com/sirupsen/logrus@v1.8.1/entry.go","function":"(*Entry).log","library_frame":true,"module":"github.com/sirupsen/logrus"},{"filename":"entry.go","lineno":293,"abs_path":"/go/pkg/mod/github.com/sirupsen/logrus@v1.8.1/entry.go","function":"(*Entry).Log","library_frame":true,"module":"github.com/sirupsen/logrus"},{"filename":"entry.go","lineno":338,"abs_path":"/go/pkg/mod/github.com/sirupsen/logrus@v1.8.1/entry.go","function":"(*Entry).Logf","library_frame":true,"module":"github.com/sirupsen/logrus"},{"filename":"entry.go","lineno":367,"abs_path":"/go/pkg/mod/github.com/sirupsen/logrus@v1.8.1/entry.go","function":"(*Entry).Errorf","library_frame":true,"module":"github.com/sirupsen/logrus"},{"filename":"logger.go","lineno":56,"abs_path":"/src/opbeans-go/logger.go","function":"logrusMiddleware","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"middleware.go","lineno":104,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmgin/v2@v2.0.0-20220125052152-dbce0fc5646c/middleware.go","function":"(*middleware).handle","library_frame":true,"module":"go.elastic.co/apm/module/apmgin/v2"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"cache.go","lineno":128,"abs_path":"/go/pkg/mod/github.com/gin-contrib/cache@v1.1.0/cache.go","function":"Cache.func1","library_frame":true,"module":"github.com/gin-contrib/cache"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"gin.go","lineno":555,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/gin.go","function":"(*Engine).handleHTTPRequest","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"gin.go","lineno":511,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/gin.go","function":"(*Engine).ServeHTTP","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"server.go","lineno":2879,"abs_path":"/usr/local/go/src/net/http/server.go","function":"serverHandler.ServeHTTP","library_frame":true,"module":"net/http"},{"filename":"server.go","lineno":1930,"abs_path":"/usr/local/go/src/net/http/server.go","function":"(*conn).serve","library_frame":true,"module":"net/http"},{"filename":"asm_arm64.s","lineno":1133,"abs_path":"/usr/local/go/src/runtime/asm_arm64.s","function":"goexit","library_frame":true,"module":"runtime"}]},"parent_id":"05b88a55a43ccec9","trace_id":"bc32c2ac722b33079a450896a288f2fd","transaction":{"sampled":false},"transaction_id":"05b88a55a43ccec9"}} {"transaction":{"duration":3.378875,"id":"05b88a55a43ccec9","name":"GET /api/orders","span_count":{"dropped":0,"started":3},"timestamp":1646055474357133,"trace_id":"bc32c2ac722b33079a450896a288f2fd","type":"request","context":{"request":{"method":"GET","url":{"hostname":"opbeans-go","pathname":"/api/orders","port":"3000","protocol":"http","full":"http://opbeans-go:3000/api/orders"},"headers":{"Elastic-Apm-Traceparent":"00-bc32c2ac722b33079a450896a288f2fd-1714e0c6738dc9e9-01","Connection":"close","Traceparent":"00-bc32c2ac722b33079a450896a288f2fd-1714e0c6738dc9e9-01","Tracestate":"es=s:1"},"http_version":"1.1","socket":{"remote_address":"172.23.0.10"}},"response":{"status_code":502},"service":{"framework":{"name":"gin","version":"v1.7.7"}}},"outcome":"failure","parent_id":"1714e0c6738dc9e9","result":"HTTP 5xx","sample_rate":1}} -{"metadata":{"system":{"architecture":"arm64","hostname":"3ff988a6070f","platform":"linux"},"process":{"pid":1,"argv":["/opbeans-go","-log-json","-log-level=debug","-listen=:3000","-frontend=/opbeans-frontend","-db=postgres:","-cache=redis://redis:6379"],"ppid":0,"title":"opbeans-go"},"service":{"agent":{"name":"go","version":"2.0.0"},"environment":"production","language":{"name":"go","version":"go1.17.7"},"name":"opbeans-go","runtime":{"name":"gc","version":"go1.17.7"},"version":"None"}}} {"span":{"duration":3.176333,"id":"9e8921848cd48e26","name":"SELECT FROM orders","timestamp":1646055476456151,"trace_id":"132d3a3870e3c632bb4881e1514b8cb4","type":"db","action":"query","context":{"db":{"statement":"SELECT\n orders.id, orders.created_at,\n customers.id, customers.full_name\nFROM orders JOIN customers ON orders.customer_id=customers.id\nLIMIT 1000\n","type":"sql","user":"postgres"},"destination":{"address":"postgres","port":5432,"service":{"name":"postgresql","resource":"postgresql","type":"db"}}},"outcome":"success","parent_id":"132d3a3870e3c632","sample_rate":1,"stacktrace":[],"subtype":"postgresql","transaction_id":"132d3a3870e3c632"}} {"transaction":{"duration":7.403583,"id":"132d3a3870e3c632","name":"GET /api/orders","span_count":{"dropped":0,"started":1},"timestamp":1646055476456130,"trace_id":"132d3a3870e3c632bb4881e1514b8cb4","type":"request","context":{"request":{"method":"GET","url":{"hostname":"localhost","pathname":"/api/orders","port":"3000","protocol":"http","full":"http://localhost:3000/api/orders"},"headers":{"User-Agent":"Go-http-client/1.1","Accept-Encoding":"gzip"},"http_version":"1.1","socket":{"remote_address":"127.0.0.1"}},"response":{"headers":{"Content-Type":"application/json; charset=utf-8"},"status_code":200},"service":{"framework":{"name":"gin","version":"v1.7.7"}}},"outcome":"success","result":"HTTP 2xx","sample_rate":1}} -{"metadata":{"system":{"architecture":"arm64","hostname":"3ff988a6070f","platform":"linux"},"process":{"pid":1,"argv":["/opbeans-go","-log-json","-log-level=debug","-listen=:3000","-frontend=/opbeans-frontend","-db=postgres:","-cache=redis://redis:6379"],"ppid":0,"title":"opbeans-go"},"service":{"agent":{"name":"go","version":"2.0.0"},"environment":"production","language":{"name":"go","version":"go1.17.7"},"name":"opbeans-go","runtime":{"name":"gc","version":"go1.17.7"},"version":"None"}}} {"span":{"duration":0.527875,"id":"d16027c1077d4aa5","name":"DNS opbeans-python","timestamp":1646055486555300,"trace_id":"bea1f2882a5197be0f29c994d16c13af","type":"external","action":"dns","outcome":"success","parent_id":"ce3c003903ed4693","sample_rate":1,"stacktrace":[],"subtype":"http","transaction_id":"bea1f2882a5197be"}} {"span":{"duration":2.818709,"id":"763082eebf12e3df","name":"Connect 172.23.0.11:3000","timestamp":1646055486555834,"trace_id":"bea1f2882a5197be0f29c994d16c13af","type":"external","action":"connect","outcome":"success","parent_id":"ce3c003903ed4693","sample_rate":1,"stacktrace":[],"subtype":"http","transaction_id":"bea1f2882a5197be"}} {"span":{"duration":1.6844169999999998,"id":"eb7ad7347635aaea","name":"SELECT FROM customers","timestamp":1646055487920298,"trace_id":"9267bb759a7fa7843da4960fba465492","type":"db","action":"query","context":{"db":{"statement":"\nSELECT\n customers.id, full_name, company_name, email,\n address, postal_code, city, country\nFROM customers\n","type":"sql","user":"postgres"},"destination":{"address":"postgres","port":5432,"service":{"name":"postgresql","resource":"postgresql","type":"db"}}},"outcome":"success","parent_id":"cf789417cb0ebe00","sample_rate":1,"stacktrace":[],"subtype":"postgresql","transaction_id":"cf789417cb0ebe00"}} @@ -93,10 +87,8 @@ {"span":{"duration":1.093917,"id":"0a055b2e734b954b","name":"Response","timestamp":1646055493249931,"trace_id":"bea1f2882a5197be0f29c994d16c13af","type":"external","action":"response","outcome":"success","parent_id":"ce3c003903ed4693","sample_rate":1,"stacktrace":[],"subtype":"http","transaction_id":"bea1f2882a5197be"}} {"span":{"duration":6695.900003000001,"id":"ce3c003903ed4693","name":"GET opbeans-python:3000","timestamp":1646055486555127,"trace_id":"bea1f2882a5197be0f29c994d16c13af","type":"external","context":{"destination":{"address":"opbeans-python","port":3000,"service":{"name":"http://opbeans-python:3000","resource":"opbeans-python:3000","type":"external"}},"http":{"url":"http://opbeans-python:3000/api/orders","status_code":200}},"outcome":"success","parent_id":"bea1f2882a5197be","sample_rate":1,"stacktrace":[{"filename":"span.go","lineno":368,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/v2@v2.0.0-20220125052152-dbce0fc5646c/span.go","function":"(*Span).End","library_frame":true,"module":"go.elastic.co/apm/v2"},{"filename":"client.go","lineno":198,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/client.go","function":"(*responseBody).endSpan","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"client.go","lineno":187,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/client.go","function":"(*responseBody).Read","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"reverseproxy.go","lineno":461,"abs_path":"/usr/local/go/src/net/http/httputil/reverseproxy.go","function":"(*ReverseProxy).copyBuffer","library_frame":true,"module":"net/http/httputil"},{"filename":"reverseproxy.go","lineno":449,"abs_path":"/usr/local/go/src/net/http/httputil/reverseproxy.go","function":"(*ReverseProxy).copyResponse","library_frame":true,"module":"net/http/httputil"},{"filename":"reverseproxy.go","lineno":338,"abs_path":"/usr/local/go/src/net/http/httputil/reverseproxy.go","function":"(*ReverseProxy).ServeHTTP","library_frame":true,"module":"net/http/httputil"},{"filename":"main.go","lineno":196,"abs_path":"/src/opbeans-go/main.go","function":"Main.func2","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"main.go","lineno":174,"abs_path":"/src/opbeans-go/main.go","function":"Main.func1","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"logger.go","lineno":36,"abs_path":"/src/opbeans-go/logger.go","function":"logrusMiddleware","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"middleware.go","lineno":104,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmgin/v2@v2.0.0-20220125052152-dbce0fc5646c/middleware.go","function":"(*middleware).handle","library_frame":true,"module":"go.elastic.co/apm/module/apmgin/v2"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"cache.go","lineno":128,"abs_path":"/go/pkg/mod/github.com/gin-contrib/cache@v1.1.0/cache.go","function":"Cache.func1","library_frame":true,"module":"github.com/gin-contrib/cache"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"gin.go","lineno":555,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/gin.go","function":"(*Engine).handleHTTPRequest","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"gin.go","lineno":511,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/gin.go","function":"(*Engine).ServeHTTP","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"server.go","lineno":2879,"abs_path":"/usr/local/go/src/net/http/server.go","function":"serverHandler.ServeHTTP","library_frame":true,"module":"net/http"},{"filename":"server.go","lineno":1930,"abs_path":"/usr/local/go/src/net/http/server.go","function":"(*conn).serve","library_frame":true,"module":"net/http"},{"filename":"asm_arm64.s","lineno":1133,"abs_path":"/usr/local/go/src/runtime/asm_arm64.s","function":"goexit","library_frame":true,"module":"runtime"}],"subtype":"http","transaction_id":"bea1f2882a5197be"}} {"transaction":{"duration":6696.651962,"id":"bea1f2882a5197be","name":"GET /api/orders","span_count":{"dropped":0,"started":5},"timestamp":1646055486554889,"trace_id":"bea1f2882a5197be0f29c994d16c13af","type":"request","context":{"request":{"method":"GET","url":{"hostname":"localhost","pathname":"/api/orders","port":"3000","protocol":"http","full":"http://localhost:3000/api/orders"},"headers":{"User-Agent":"Go-http-client/1.1","Accept-Encoding":"gzip"},"http_version":"1.1","socket":{"remote_address":"127.0.0.1"}},"response":{"headers":{"X-Frame-Options":"DENY","Referrer-Policy":"same-origin","Server":"gunicorn","Content-Type":"application/json","X-Content-Type-Options":"nosniff","Content-Length":"108580","Vary":"Cookie","Date":"Mon, 28 Feb 2022 13:38:13 GMT"},"status_code":200},"service":{"framework":{"name":"gin","version":"v1.7.7"}}},"outcome":"success","result":"HTTP 2xx","sample_rate":1}} -{"metadata":{"system":{"architecture":"arm64","hostname":"3ff988a6070f","platform":"linux"},"process":{"pid":1,"argv":["/opbeans-go","-log-json","-log-level=debug","-listen=:3000","-frontend=/opbeans-frontend","-db=postgres:","-cache=redis://redis:6379"],"ppid":0,"title":"opbeans-go"},"service":{"agent":{"name":"go","version":"2.0.0"},"environment":"production","language":{"name":"go","version":"go1.17.7"},"name":"opbeans-go","runtime":{"name":"gc","version":"go1.17.7"},"version":"None"}}} {"span":{"duration":1.2355,"id":"05d83cca060c4254","name":"SELECT FROM orders","timestamp":1646055499606588,"trace_id":"444061ab1ee73a556d2b717613327610","type":"db","action":"query","context":{"db":{"statement":"SELECT\n orders.id, orders.created_at,\n customers.id, customers.full_name\nFROM orders JOIN customers ON orders.customer_id=customers.id\nLIMIT 1000\n","type":"sql","user":"postgres"},"destination":{"address":"postgres","port":5432,"service":{"name":"postgresql","resource":"postgresql","type":"db"}}},"outcome":"success","parent_id":"444061ab1ee73a55","sample_rate":1,"stacktrace":[],"subtype":"postgresql","transaction_id":"444061ab1ee73a55"}} {"transaction":{"duration":3.89425,"id":"444061ab1ee73a55","name":"GET /api/orders","span_count":{"dropped":0,"started":1},"timestamp":1646055499606502,"trace_id":"444061ab1ee73a556d2b717613327610","type":"request","context":{"request":{"method":"GET","url":{"hostname":"localhost","pathname":"/api/orders","port":"3000","protocol":"http","full":"http://localhost:3000/api/orders"},"headers":{"User-Agent":"Go-http-client/1.1","Accept-Encoding":"gzip"},"http_version":"1.1","socket":{"remote_address":"127.0.0.1"}},"response":{"headers":{"Content-Type":"application/json; charset=utf-8"},"status_code":200},"service":{"framework":{"name":"gin","version":"v1.7.7"}}},"outcome":"success","result":"HTTP 2xx","sample_rate":1}} -{"metadata":{"system":{"architecture":"arm64","hostname":"3ff988a6070f","platform":"linux"},"process":{"pid":1,"argv":["/opbeans-go","-log-json","-log-level=debug","-listen=:3000","-frontend=/opbeans-frontend","-db=postgres:","-cache=redis://redis:6379"],"ppid":0,"title":"opbeans-go"},"service":{"agent":{"name":"go","version":"2.0.0"},"environment":"production","language":{"name":"go","version":"go1.17.7"},"name":"opbeans-go","runtime":{"name":"gc","version":"go1.17.7"},"version":"None"}}} {"span":{"duration":1.133375,"id":"788d4fd061e664db","name":"SELECT FROM orders","timestamp":1646055509706438,"trace_id":"644dd6c4b41a09b6ed1617348bccb715","type":"db","action":"query","context":{"db":{"statement":"SELECT\n orders.id, orders.created_at,\n customers.id, customers.full_name\nFROM orders JOIN customers ON orders.customer_id=customers.id\nLIMIT 1000\n","type":"sql","user":"postgres"},"destination":{"address":"postgres","port":5432,"service":{"name":"postgresql","resource":"postgresql","type":"db"}}},"outcome":"success","parent_id":"644dd6c4b41a09b6","sample_rate":1,"stacktrace":[],"subtype":"postgresql","transaction_id":"644dd6c4b41a09b6"}} {"transaction":{"duration":9.560708,"id":"644dd6c4b41a09b6","name":"GET /api/orders","span_count":{"dropped":0,"started":1},"timestamp":1646055509706353,"trace_id":"644dd6c4b41a09b6ed1617348bccb715","type":"request","context":{"request":{"method":"GET","url":{"hostname":"localhost","pathname":"/api/orders","port":"3000","protocol":"http","full":"http://localhost:3000/api/orders"},"headers":{"Accept-Encoding":"gzip","User-Agent":"Go-http-client/1.1"},"http_version":"1.1","socket":{"remote_address":"127.0.0.1"}},"response":{"headers":{"Content-Type":"application/json; charset=utf-8"},"status_code":200},"service":{"framework":{"name":"gin","version":"v1.7.7"}}},"outcome":"success","result":"HTTP 2xx","sample_rate":1}} {"span":{"duration":0.37512500000000004,"id":"03eb389cac4a9080","name":"DNS opbeans-python","timestamp":1646055512955077,"trace_id":"ff835dd40e830476499e465971e9f3b4","type":"external","action":"dns","outcome":"success","parent_id":"d7766e2b563ea25b","sample_rate":1,"stacktrace":[],"subtype":"http","transaction_id":"1a1bcd804f42c688"}} @@ -391,7 +383,6 @@ {"transaction":{"duration":84.65425,"id":"d62d09326cf6dcbb","name":"GET /api/types/:id","span_count":{"dropped":0,"started":5},"timestamp":1646055518913854,"trace_id":"7645c73077c62235c327f2711c7e9ada","type":"request","context":{"request":{"method":"GET","url":{"hostname":"opbeans-go","pathname":"/api/types/1","port":"3000","protocol":"http","full":"http://opbeans-go:3000/api/types/1"},"headers":{"User-Agent":"http.rb/5.0.4","Traceparent":"00-7645c73077c62235c327f2711c7e9ada-06ce0b52ce2d841e-01","Tracestate":"es=s:1.0","Elastic-Apm-Traceparent":"00-7645c73077c62235c327f2711c7e9ada-06ce0b52ce2d841e-01","Connection":"close"},"http_version":"1.1","socket":{"remote_address":"172.23.0.12"}},"response":{"headers":{"Content-Type":"application/json; charset=utf-8","Content-Length":"217","Etag":"W/\"d9-cebOOHODBQMZd1wt+ZZBaSPgQLQ\"","Date":"Mon, 28 Feb 2022 13:38:38 GMT","X-Powered-By":"Express"},"status_code":200},"service":{"framework":{"name":"gin","version":"v1.7.7"}}},"outcome":"success","parent_id":"06ce0b52ce2d841e","result":"HTTP 2xx","sample_rate":1}} {"span":{"duration":0.5155,"id":"5ca085bd3387f567","name":"DNS opbeans-python","timestamp":1646055519335740,"trace_id":"6b6ef5c9d542ea2ad14a65f2e9daa645","type":"external","action":"dns","outcome":"success","parent_id":"14538c53087bb0da","sample_rate":1,"stacktrace":[],"subtype":"http","transaction_id":"abd1fac76440b486"}} {"span":{"duration":0.23208399999999998,"id":"c5cb445a28445bec","name":"Connect 172.23.0.11:3000","timestamp":1646055519336260,"trace_id":"6b6ef5c9d542ea2ad14a65f2e9daa645","type":"external","action":"connect","outcome":"success","parent_id":"14538c53087bb0da","sample_rate":1,"stacktrace":[],"subtype":"http","transaction_id":"abd1fac76440b486"}} -{"metadata":{"system":{"architecture":"arm64","hostname":"3ff988a6070f","platform":"linux"},"process":{"pid":1,"argv":["/opbeans-go","-log-json","-log-level=debug","-listen=:3000","-frontend=/opbeans-frontend","-db=postgres:","-cache=redis://redis:6379"],"ppid":0,"title":"opbeans-go"},"service":{"agent":{"name":"go","version":"2.0.0"},"environment":"production","language":{"name":"go","version":"go1.17.7"},"name":"opbeans-go","runtime":{"name":"gc","version":"go1.17.7"},"version":"None"}}} {"span":{"duration":1.3735,"id":"e6e2e99f7ac2f2ee","name":"SELECT FROM orders","timestamp":1646055519811518,"trace_id":"5d43f089755480e14be70fc2f7b52be3","type":"db","action":"query","context":{"db":{"statement":"SELECT\n orders.id, orders.created_at,\n customers.id, customers.full_name\nFROM orders JOIN customers ON orders.customer_id=customers.id\nLIMIT 1000\n","type":"sql","user":"postgres"},"destination":{"address":"postgres","port":5432,"service":{"name":"postgresql","resource":"postgresql","type":"db"}}},"outcome":"success","parent_id":"5d43f089755480e1","sample_rate":1,"stacktrace":[],"subtype":"postgresql","transaction_id":"5d43f089755480e1"}} {"transaction":{"duration":3.476416,"id":"5d43f089755480e1","name":"GET /api/orders","span_count":{"dropped":0,"started":1},"timestamp":1646055519811492,"trace_id":"5d43f089755480e14be70fc2f7b52be3","type":"request","context":{"request":{"method":"GET","url":{"hostname":"localhost","pathname":"/api/orders","port":"3000","protocol":"http","full":"http://localhost:3000/api/orders"},"headers":{"User-Agent":"Go-http-client/1.1","Accept-Encoding":"gzip"},"http_version":"1.1","socket":{"remote_address":"127.0.0.1"}},"response":{"headers":{"Content-Type":"application/json; charset=utf-8"},"status_code":200},"service":{"framework":{"name":"gin","version":"v1.7.7"}}},"outcome":"success","result":"HTTP 2xx","sample_rate":1}} {"span":{"duration":0.232,"id":"3d05772810c1a6cf","name":"SELECT FROM customers","timestamp":1646055519997116,"trace_id":"221874a12688764a99dd1732416b7baa","type":"db","action":"query","context":{"db":{"statement":"\nSELECT\n customers.id, full_name, company_name, email,\n address, postal_code, city, country\nFROM customers\n","type":"sql","user":"postgres"},"destination":{"address":"postgres","port":5432,"service":{"name":"postgresql","resource":"postgresql","type":"db"}}},"outcome":"success","parent_id":"1b8b6a37d9ba2687","sample_rate":1,"stacktrace":[],"subtype":"postgresql","transaction_id":"1b8b6a37d9ba2687"}} @@ -743,12 +734,10 @@ {"transaction":{"duration":61.679916,"id":"1abce10a08a704ff","name":"GET /api/types/:id","span_count":{"dropped":0,"started":5},"timestamp":1646055529540969,"trace_id":"1abce10a08a704ff0d98188dfbeb98e3","type":"request","context":{"request":{"method":"GET","url":{"hostname":"opbeans-go","pathname":"/api/types/1","port":"3000","protocol":"http","full":"http://opbeans-go:3000/api/types/1"},"headers":{"Accept":"*/*","Accept-Encoding":"gzip, deflate","User-Agent":"Python/3.7 aiohttp/3.3.2"},"http_version":"1.1","socket":{"remote_address":"172.23.0.14"}},"response":{"headers":{"X-Powered-By":"Express","Content-Type":"application/json; charset=utf-8","Content-Length":"217","Etag":"W/\"d9-cebOOHODBQMZd1wt+ZZBaSPgQLQ\"","Date":"Mon, 28 Feb 2022 13:38:49 GMT"},"status_code":200},"service":{"framework":{"name":"gin","version":"v1.7.7"}}},"outcome":"success","result":"HTTP 2xx","sample_rate":1}} {"span":{"duration":0.45245799999999997,"id":"9977e51d70fb78a8","name":"DNS opbeans-python","timestamp":1646055529623809,"trace_id":"0083cc60728c0c5c9e6d536c71154f82","type":"external","action":"dns","outcome":"success","parent_id":"12f73ef43e288a66","sample_rate":1,"stacktrace":[],"subtype":"http","transaction_id":"0083cc60728c0c5c"}} {"span":{"duration":0.300125,"id":"25fcf82dbedea3af","name":"Connect 172.23.0.11:3000","timestamp":1646055529624266,"trace_id":"0083cc60728c0c5c9e6d536c71154f82","type":"external","action":"connect","outcome":"success","parent_id":"12f73ef43e288a66","sample_rate":1,"stacktrace":[],"subtype":"http","transaction_id":"0083cc60728c0c5c"}} -{"metadata":{"system":{"architecture":"arm64","hostname":"3ff988a6070f","platform":"linux"},"process":{"pid":1,"argv":["/opbeans-go","-log-json","-log-level=debug","-listen=:3000","-frontend=/opbeans-frontend","-db=postgres:","-cache=redis://redis:6379"],"ppid":0,"title":"opbeans-go"},"service":{"agent":{"name":"go","version":"2.0.0"},"environment":"production","language":{"name":"go","version":"go1.17.7"},"name":"opbeans-go","runtime":{"name":"gc","version":"go1.17.7"},"version":"None"}}} {"span":{"duration":0.860875,"id":"f0d198c48f23b392","name":"SELECT FROM orders","timestamp":1646055529908218,"trace_id":"af06e9733837b5391d9bb8ced3f8d9ce","type":"db","action":"query","context":{"db":{"statement":"SELECT\n orders.id, orders.created_at,\n customers.id, customers.full_name\nFROM orders JOIN customers ON orders.customer_id=customers.id\nLIMIT 1000\n","type":"sql","user":"postgres"},"destination":{"address":"postgres","port":5432,"service":{"name":"postgresql","resource":"postgresql","type":"db"}}},"outcome":"success","parent_id":"af06e9733837b539","sample_rate":1,"stacktrace":[],"subtype":"postgresql","transaction_id":"af06e9733837b539"}} {"transaction":{"duration":2.802625,"id":"af06e9733837b539","name":"GET /api/orders","span_count":{"dropped":0,"started":1},"timestamp":1646055529908200,"trace_id":"af06e9733837b5391d9bb8ced3f8d9ce","type":"request","context":{"request":{"method":"GET","url":{"hostname":"localhost","pathname":"/api/orders","port":"3000","protocol":"http","full":"http://localhost:3000/api/orders"},"headers":{"User-Agent":"Go-http-client/1.1","Accept-Encoding":"gzip"},"http_version":"1.1","socket":{"remote_address":"127.0.0.1"}},"response":{"headers":{"Content-Type":"application/json; charset=utf-8"},"status_code":200},"service":{"framework":{"name":"gin","version":"v1.7.7"}}},"outcome":"success","result":"HTTP 2xx","sample_rate":1}} {"span":{"duration":1.238458,"id":"8859b0161d2ddc90","name":"SELECT FROM orders","timestamp":1646055538687668,"trace_id":"3b967836cbae3b269de989c4dd4182c7","type":"db","action":"query","context":{"db":{"statement":"SELECT\n orders.id, orders.created_at,\n customers.id, customers.full_name\nFROM orders JOIN customers ON orders.customer_id=customers.id\nLIMIT 1000\n","type":"sql","user":"postgres"},"destination":{"address":"postgres","port":5432,"service":{"name":"postgresql","resource":"postgresql","type":"db"}}},"outcome":"success","parent_id":"4e4122e13940c083","sample_rate":1,"stacktrace":[],"subtype":"postgresql","transaction_id":"4e4122e13940c083"}} {"transaction":{"duration":4.042166,"id":"4e4122e13940c083","name":"GET /api/orders","span_count":{"dropped":0,"started":1},"timestamp":1646055538687461,"trace_id":"3b967836cbae3b269de989c4dd4182c7","type":"request","context":{"request":{"method":"GET","url":{"hostname":"opbeans-go","pathname":"/api/orders","port":"3000","protocol":"http","full":"http://opbeans-go:3000/api/orders"},"headers":{"Traceparent":"00-3b967836cbae3b269de989c4dd4182c7-ec668f4166e766b3-01","Tracestate":"es=s:1","Elastic-Apm-Traceparent":"00-3b967836cbae3b269de989c4dd4182c7-ec668f4166e766b3-01","Connection":"close"},"http_version":"1.1","socket":{"remote_address":"172.23.0.10"}},"response":{"headers":{"Content-Type":"application/json; charset=utf-8"},"status_code":200},"service":{"framework":{"name":"gin","version":"v1.7.7"}}},"outcome":"success","parent_id":"ec668f4166e766b3","result":"HTTP 2xx","sample_rate":1}} -{"metadata":{"system":{"architecture":"arm64","hostname":"3ff988a6070f","platform":"linux"},"process":{"pid":1,"argv":["/opbeans-go","-log-json","-log-level=debug","-listen=:3000","-frontend=/opbeans-frontend","-db=postgres:","-cache=redis://redis:6379"],"ppid":0,"title":"opbeans-go"},"service":{"agent":{"name":"go","version":"2.0.0"},"environment":"production","language":{"name":"go","version":"go1.17.7"},"name":"opbeans-go","runtime":{"name":"gc","version":"go1.17.7"},"version":"None"}}} {"span":{"duration":0.8802080000000001,"id":"a659b7e7e4589489","name":"SELECT FROM orders","timestamp":1646055540016813,"trace_id":"5edacb2526a2f3de5a14adbe3c784321","type":"db","action":"query","context":{"db":{"statement":"SELECT\n orders.id, orders.created_at,\n customers.id, customers.full_name\nFROM orders JOIN customers ON orders.customer_id=customers.id\nLIMIT 1000\n","type":"sql","user":"postgres"},"destination":{"address":"postgres","port":5432,"service":{"name":"postgresql","resource":"postgresql","type":"db"}}},"outcome":"success","parent_id":"5edacb2526a2f3de","sample_rate":1,"stacktrace":[],"subtype":"postgresql","transaction_id":"5edacb2526a2f3de"}} {"transaction":{"duration":3.1580000000000004,"id":"5edacb2526a2f3de","name":"GET /api/orders","span_count":{"dropped":0,"started":1},"timestamp":1646055540016789,"trace_id":"5edacb2526a2f3de5a14adbe3c784321","type":"request","context":{"request":{"method":"GET","url":{"hostname":"localhost","pathname":"/api/orders","port":"3000","protocol":"http","full":"http://localhost:3000/api/orders"},"headers":{"User-Agent":"Go-http-client/1.1","Accept-Encoding":"gzip"},"http_version":"1.1","socket":{"remote_address":"127.0.0.1"}},"response":{"headers":{"Content-Type":"application/json; charset=utf-8"},"status_code":200},"service":{"framework":{"name":"gin","version":"v1.7.7"}}},"outcome":"success","result":"HTTP 2xx","sample_rate":1}} {"span":{"duration":15015.723299,"id":"2deb7254c12f439d","name":"GET opbeans-python:3000","timestamp":1646055528427001,"trace_id":"1a86c3632420e69917d05e919e9f9f61","type":"external","context":{"destination":{"address":"opbeans-python","port":3000,"service":{"name":"http://opbeans-python:3000","resource":"opbeans-python:3000","type":"external"}},"http":{"url":"http://opbeans-python:3000/api/products/4"}},"outcome":"success","parent_id":"e67187ae9aa2262e","sample_rate":1,"stacktrace":[{"filename":"span.go","lineno":368,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/v2@v2.0.0-20220125052152-dbce0fc5646c/span.go","function":"(*Span).End","library_frame":true,"module":"go.elastic.co/apm/v2"},{"filename":"client.go","lineno":129,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/client.go","function":"(*roundTripper).RoundTrip","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"reverseproxy.go","lineno":298,"abs_path":"/usr/local/go/src/net/http/httputil/reverseproxy.go","function":"(*ReverseProxy).ServeHTTP","library_frame":true,"module":"net/http/httputil"},{"filename":"main.go","lineno":196,"abs_path":"/src/opbeans-go/main.go","function":"Main.func2","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"main.go","lineno":174,"abs_path":"/src/opbeans-go/main.go","function":"Main.func1","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"logger.go","lineno":36,"abs_path":"/src/opbeans-go/logger.go","function":"logrusMiddleware","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"middleware.go","lineno":104,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmgin/v2@v2.0.0-20220125052152-dbce0fc5646c/middleware.go","function":"(*middleware).handle","library_frame":true,"module":"go.elastic.co/apm/module/apmgin/v2"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"cache.go","lineno":128,"abs_path":"/go/pkg/mod/github.com/gin-contrib/cache@v1.1.0/cache.go","function":"Cache.func1","library_frame":true,"module":"github.com/gin-contrib/cache"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"gin.go","lineno":555,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/gin.go","function":"(*Engine).handleHTTPRequest","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"gin.go","lineno":511,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/gin.go","function":"(*Engine).ServeHTTP","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"server.go","lineno":2879,"abs_path":"/usr/local/go/src/net/http/server.go","function":"serverHandler.ServeHTTP","library_frame":true,"module":"net/http"},{"filename":"server.go","lineno":1930,"abs_path":"/usr/local/go/src/net/http/server.go","function":"(*conn).serve","library_frame":true,"module":"net/http"},{"filename":"asm_arm64.s","lineno":1133,"abs_path":"/usr/local/go/src/runtime/asm_arm64.s","function":"goexit","library_frame":true,"module":"runtime"}],"subtype":"http","transaction_id":"e67187ae9aa2262e"}} @@ -1206,7 +1195,6 @@ {"span":{"duration":0.11995800000000001,"id":"bc91936862330e9e","name":"Connect 172.23.0.11:3000","timestamp":1646055549453717,"trace_id":"5905c6febf50b2a1601c7bcf810c6abc","type":"external","action":"connect","outcome":"success","parent_id":"dfcfec89d9e82cd1","sample_rate":1,"stacktrace":[],"subtype":"http","transaction_id":"762d0033dbc53a94"}} {"span":{"duration":0.21775,"id":"ded5efed78b229da","name":"DNS opbeans-python","timestamp":1646055549502737,"trace_id":"5905c6febf50b2a1601c7bcf810c6abc","type":"external","action":"dns","outcome":"success","parent_id":"7b97cc45d9b7d1a3","sample_rate":1,"stacktrace":[],"subtype":"http","transaction_id":"3f07bb78bf345c98"}} {"span":{"duration":0.078458,"id":"adb527636c0dc6bf","name":"Connect 172.23.0.11:3000","timestamp":1646055549502959,"trace_id":"5905c6febf50b2a1601c7bcf810c6abc","type":"external","action":"connect","outcome":"success","parent_id":"7b97cc45d9b7d1a3","sample_rate":1,"stacktrace":[],"subtype":"http","transaction_id":"3f07bb78bf345c98"}} -{"metadata":{"system":{"architecture":"arm64","hostname":"3ff988a6070f","platform":"linux"},"process":{"pid":1,"argv":["/opbeans-go","-log-json","-log-level=debug","-listen=:3000","-frontend=/opbeans-frontend","-db=postgres:","-cache=redis://redis:6379"],"ppid":0,"title":"opbeans-go"},"service":{"agent":{"name":"go","version":"2.0.0"},"environment":"production","language":{"name":"go","version":"go1.17.7"},"name":"opbeans-go","runtime":{"name":"gc","version":"go1.17.7"},"version":"None"}}} {"span":{"duration":242.808541,"id":"5a1739056a66ea83","name":"Request","timestamp":1646055550169843,"trace_id":"56e69a86450a62a52513ce3598e7ac12","type":"external","action":"request","outcome":"success","parent_id":"e847a7ba4c99d9f9","sample_rate":1,"stacktrace":[{"filename":"span.go","lineno":368,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/v2@v2.0.0-20220125052152-dbce0fc5646c/span.go","function":"(*Span).End","library_frame":true,"module":"go.elastic.co/apm/v2"},{"filename":"clienttrace.go","lineno":130,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/clienttrace.go","function":"withClientTrace.func8","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"transport.go","lineno":2272,"abs_path":"/usr/local/go/src/net/http/transport.go","function":"(*persistConn).readResponse","library_frame":true,"module":"net/http"},{"filename":"transport.go","lineno":2102,"abs_path":"/usr/local/go/src/net/http/transport.go","function":"(*persistConn).readLoop","library_frame":true,"module":"net/http"},{"filename":"asm_arm64.s","lineno":1133,"abs_path":"/usr/local/go/src/runtime/asm_arm64.s","function":"goexit","library_frame":true,"module":"runtime"}],"subtype":"http","transaction_id":"56e69a86450a62a5"}} {"span":{"duration":1.017,"id":"f718a20578a3ed72","name":"Response","timestamp":1646055550412682,"trace_id":"56e69a86450a62a52513ce3598e7ac12","type":"external","action":"response","outcome":"success","parent_id":"e847a7ba4c99d9f9","sample_rate":1,"stacktrace":[],"subtype":"http","transaction_id":"56e69a86450a62a5"}} {"span":{"duration":243.899416,"id":"e847a7ba4c99d9f9","name":"GET opbeans-ruby:3000","timestamp":1646055550169801,"trace_id":"56e69a86450a62a52513ce3598e7ac12","type":"external","context":{"destination":{"address":"opbeans-ruby","port":3000,"service":{"name":"http://opbeans-ruby:3000","resource":"opbeans-ruby:3000","type":"external"}},"http":{"url":"http://opbeans-ruby:3000/api/orders","status_code":200}},"outcome":"success","parent_id":"56e69a86450a62a5","sample_rate":1,"stacktrace":[{"filename":"span.go","lineno":368,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/v2@v2.0.0-20220125052152-dbce0fc5646c/span.go","function":"(*Span).End","library_frame":true,"module":"go.elastic.co/apm/v2"},{"filename":"client.go","lineno":198,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/client.go","function":"(*responseBody).endSpan","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"client.go","lineno":187,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/client.go","function":"(*responseBody).Read","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"reverseproxy.go","lineno":461,"abs_path":"/usr/local/go/src/net/http/httputil/reverseproxy.go","function":"(*ReverseProxy).copyBuffer","library_frame":true,"module":"net/http/httputil"},{"filename":"reverseproxy.go","lineno":449,"abs_path":"/usr/local/go/src/net/http/httputil/reverseproxy.go","function":"(*ReverseProxy).copyResponse","library_frame":true,"module":"net/http/httputil"},{"filename":"reverseproxy.go","lineno":338,"abs_path":"/usr/local/go/src/net/http/httputil/reverseproxy.go","function":"(*ReverseProxy).ServeHTTP","library_frame":true,"module":"net/http/httputil"},{"filename":"main.go","lineno":196,"abs_path":"/src/opbeans-go/main.go","function":"Main.func2","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"main.go","lineno":174,"abs_path":"/src/opbeans-go/main.go","function":"Main.func1","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"logger.go","lineno":36,"abs_path":"/src/opbeans-go/logger.go","function":"logrusMiddleware","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"middleware.go","lineno":104,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmgin/v2@v2.0.0-20220125052152-dbce0fc5646c/middleware.go","function":"(*middleware).handle","library_frame":true,"module":"go.elastic.co/apm/module/apmgin/v2"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"cache.go","lineno":128,"abs_path":"/go/pkg/mod/github.com/gin-contrib/cache@v1.1.0/cache.go","function":"Cache.func1","library_frame":true,"module":"github.com/gin-contrib/cache"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"gin.go","lineno":555,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/gin.go","function":"(*Engine).handleHTTPRequest","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"gin.go","lineno":511,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/gin.go","function":"(*Engine).ServeHTTP","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"server.go","lineno":2879,"abs_path":"/usr/local/go/src/net/http/server.go","function":"serverHandler.ServeHTTP","library_frame":true,"module":"net/http"},{"filename":"server.go","lineno":1930,"abs_path":"/usr/local/go/src/net/http/server.go","function":"(*conn).serve","library_frame":true,"module":"net/http"},{"filename":"asm_arm64.s","lineno":1133,"abs_path":"/usr/local/go/src/runtime/asm_arm64.s","function":"goexit","library_frame":true,"module":"runtime"}],"subtype":"http","transaction_id":"56e69a86450a62a5"}} @@ -1685,7 +1673,6 @@ {"span":{"duration":0.114667,"id":"3c10ca0186c1f2d1","name":"Connect 172.23.0.10:3000","timestamp":1646055560295850,"trace_id":"3c34786bce8d3b67155d918e9bf65d8a","type":"external","action":"connect","outcome":"success","parent_id":"dd178d75525c09c0","sample_rate":1,"stacktrace":[],"subtype":"http","transaction_id":"3c34786bce8d3b67"}} {"span":{"duration":1.008375,"id":"74a25364d5d85621","name":"SELECT FROM customers","timestamp":1646055560389515,"trace_id":"3c34786bce8d3b67155d918e9bf65d8a","type":"db","action":"query","context":{"db":{"statement":"\nSELECT\n customers.id, full_name, company_name, email,\n address, postal_code, city, country\nFROM customers\nWHERE id=$1\n","type":"sql","user":"postgres"},"destination":{"address":"postgres","port":5432,"service":{"name":"postgresql","resource":"postgresql","type":"db"}}},"outcome":"success","parent_id":"03acabe903e912f3","sample_rate":1,"stacktrace":[],"subtype":"postgresql","transaction_id":"03acabe903e912f3"}} {"transaction":{"duration":2.607916,"id":"03acabe903e912f3","name":"GET /api/customers/:id","span_count":{"dropped":0,"started":1},"timestamp":1646055560389493,"trace_id":"3c34786bce8d3b67155d918e9bf65d8a","type":"request","context":{"request":{"method":"GET","url":{"hostname":"opbeans-go","pathname":"/api/customers/566","port":"3000","protocol":"http","full":"http://opbeans-go:3000/api/customers/566"},"headers":{"Tracestate":"es=s:1","Elastic-Apm-Traceparent":"00-3c34786bce8d3b67155d918e9bf65d8a-4b342a981cd2549c-01","Connection":"close","Traceparent":"00-3c34786bce8d3b67155d918e9bf65d8a-4b342a981cd2549c-01"},"http_version":"1.1","socket":{"remote_address":"172.23.0.10"}},"response":{"headers":{"Content-Type":"application/json; charset=utf-8"},"status_code":200},"service":{"framework":{"name":"gin","version":"v1.7.7"}}},"outcome":"success","parent_id":"4b342a981cd2549c","result":"HTTP 2xx","sample_rate":1}} -{"metadata":{"system":{"architecture":"arm64","hostname":"3ff988a6070f","platform":"linux"},"process":{"pid":1,"argv":["/opbeans-go","-log-json","-log-level=debug","-listen=:3000","-frontend=/opbeans-frontend","-db=postgres:","-cache=redis://redis:6379"],"ppid":0,"title":"opbeans-go"},"service":{"agent":{"name":"go","version":"2.0.0"},"environment":"production","language":{"name":"go","version":"go1.17.7"},"name":"opbeans-go","runtime":{"name":"gc","version":"go1.17.7"},"version":"None"}}} {"span":{"duration":207.70787499999997,"id":"aa7d57a264853d47","name":"Request","timestamp":1646055560295985,"trace_id":"3c34786bce8d3b67155d918e9bf65d8a","type":"external","action":"request","outcome":"success","parent_id":"dd178d75525c09c0","sample_rate":1,"stacktrace":[{"filename":"span.go","lineno":368,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/v2@v2.0.0-20220125052152-dbce0fc5646c/span.go","function":"(*Span).End","library_frame":true,"module":"go.elastic.co/apm/v2"},{"filename":"clienttrace.go","lineno":130,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/clienttrace.go","function":"withClientTrace.func8","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"transport.go","lineno":2272,"abs_path":"/usr/local/go/src/net/http/transport.go","function":"(*persistConn).readResponse","library_frame":true,"module":"net/http"},{"filename":"transport.go","lineno":2102,"abs_path":"/usr/local/go/src/net/http/transport.go","function":"(*persistConn).readLoop","library_frame":true,"module":"net/http"},{"filename":"asm_arm64.s","lineno":1133,"abs_path":"/usr/local/go/src/runtime/asm_arm64.s","function":"goexit","library_frame":true,"module":"runtime"}],"subtype":"http","transaction_id":"3c34786bce8d3b67"}} {"span":{"duration":0.118125,"id":"7a3c1109ce4e9f4c","name":"Response","timestamp":1646055560503726,"trace_id":"3c34786bce8d3b67155d918e9bf65d8a","type":"external","action":"response","outcome":"success","parent_id":"dd178d75525c09c0","sample_rate":1,"stacktrace":[],"subtype":"http","transaction_id":"3c34786bce8d3b67"}} {"span":{"duration":208.447625,"id":"dd178d75525c09c0","name":"GET opbeans-node:3000","timestamp":1646055560295397,"trace_id":"3c34786bce8d3b67155d918e9bf65d8a","type":"external","context":{"destination":{"address":"opbeans-node","port":3000,"service":{"name":"http://opbeans-node:3000","resource":"opbeans-node:3000","type":"external"}},"http":{"url":"http://opbeans-node:3000/api/customers/566","status_code":200}},"outcome":"success","parent_id":"3c34786bce8d3b67","sample_rate":1,"stacktrace":[{"filename":"span.go","lineno":368,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/v2@v2.0.0-20220125052152-dbce0fc5646c/span.go","function":"(*Span).End","library_frame":true,"module":"go.elastic.co/apm/v2"},{"filename":"client.go","lineno":198,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/client.go","function":"(*responseBody).endSpan","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"client.go","lineno":187,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/client.go","function":"(*responseBody).Read","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"reverseproxy.go","lineno":461,"abs_path":"/usr/local/go/src/net/http/httputil/reverseproxy.go","function":"(*ReverseProxy).copyBuffer","library_frame":true,"module":"net/http/httputil"},{"filename":"reverseproxy.go","lineno":449,"abs_path":"/usr/local/go/src/net/http/httputil/reverseproxy.go","function":"(*ReverseProxy).copyResponse","library_frame":true,"module":"net/http/httputil"},{"filename":"reverseproxy.go","lineno":338,"abs_path":"/usr/local/go/src/net/http/httputil/reverseproxy.go","function":"(*ReverseProxy).ServeHTTP","library_frame":true,"module":"net/http/httputil"},{"filename":"main.go","lineno":196,"abs_path":"/src/opbeans-go/main.go","function":"Main.func2","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"main.go","lineno":174,"abs_path":"/src/opbeans-go/main.go","function":"Main.func1","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"logger.go","lineno":36,"abs_path":"/src/opbeans-go/logger.go","function":"logrusMiddleware","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"middleware.go","lineno":104,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmgin/v2@v2.0.0-20220125052152-dbce0fc5646c/middleware.go","function":"(*middleware).handle","library_frame":true,"module":"go.elastic.co/apm/module/apmgin/v2"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"cache.go","lineno":128,"abs_path":"/go/pkg/mod/github.com/gin-contrib/cache@v1.1.0/cache.go","function":"Cache.func1","library_frame":true,"module":"github.com/gin-contrib/cache"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"gin.go","lineno":555,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/gin.go","function":"(*Engine).handleHTTPRequest","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"gin.go","lineno":511,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/gin.go","function":"(*Engine).ServeHTTP","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"server.go","lineno":2879,"abs_path":"/usr/local/go/src/net/http/server.go","function":"serverHandler.ServeHTTP","library_frame":true,"module":"net/http"},{"filename":"server.go","lineno":1930,"abs_path":"/usr/local/go/src/net/http/server.go","function":"(*conn).serve","library_frame":true,"module":"net/http"},{"filename":"asm_arm64.s","lineno":1133,"abs_path":"/usr/local/go/src/runtime/asm_arm64.s","function":"goexit","library_frame":true,"module":"runtime"}],"subtype":"http","transaction_id":"3c34786bce8d3b67"}} @@ -2101,7 +2088,6 @@ {"span":{"duration":7.929083,"id":"112e13e94b1e06f8","name":"Response","timestamp":1646055569514760,"trace_id":"b8abd0ba7889855a514a527e1fbadaa7","type":"external","action":"response","outcome":"success","parent_id":"6044987106dba472","sample_rate":1,"stacktrace":[{"filename":"span.go","lineno":368,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/v2@v2.0.0-20220125052152-dbce0fc5646c/span.go","function":"(*Span).End","library_frame":true,"module":"go.elastic.co/apm/v2"},{"filename":"clienttrace.go","lineno":144,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/clienttrace.go","function":"(*requestTracer).end","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"client.go","lineno":196,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/client.go","function":"(*responseBody).endSpan","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"client.go","lineno":187,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/client.go","function":"(*responseBody).Read","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"reverseproxy.go","lineno":461,"abs_path":"/usr/local/go/src/net/http/httputil/reverseproxy.go","function":"(*ReverseProxy).copyBuffer","library_frame":true,"module":"net/http/httputil"},{"filename":"reverseproxy.go","lineno":449,"abs_path":"/usr/local/go/src/net/http/httputil/reverseproxy.go","function":"(*ReverseProxy).copyResponse","library_frame":true,"module":"net/http/httputil"},{"filename":"reverseproxy.go","lineno":338,"abs_path":"/usr/local/go/src/net/http/httputil/reverseproxy.go","function":"(*ReverseProxy).ServeHTTP","library_frame":true,"module":"net/http/httputil"},{"filename":"main.go","lineno":196,"abs_path":"/src/opbeans-go/main.go","function":"Main.func2","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"main.go","lineno":174,"abs_path":"/src/opbeans-go/main.go","function":"Main.func1","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"logger.go","lineno":36,"abs_path":"/src/opbeans-go/logger.go","function":"logrusMiddleware","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"middleware.go","lineno":104,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmgin/v2@v2.0.0-20220125052152-dbce0fc5646c/middleware.go","function":"(*middleware).handle","library_frame":true,"module":"go.elastic.co/apm/module/apmgin/v2"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"cache.go","lineno":128,"abs_path":"/go/pkg/mod/github.com/gin-contrib/cache@v1.1.0/cache.go","function":"Cache.func1","library_frame":true,"module":"github.com/gin-contrib/cache"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"gin.go","lineno":555,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/gin.go","function":"(*Engine).handleHTTPRequest","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"gin.go","lineno":511,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/gin.go","function":"(*Engine).ServeHTTP","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"server.go","lineno":2879,"abs_path":"/usr/local/go/src/net/http/server.go","function":"serverHandler.ServeHTTP","library_frame":true,"module":"net/http"},{"filename":"server.go","lineno":1930,"abs_path":"/usr/local/go/src/net/http/server.go","function":"(*conn).serve","library_frame":true,"module":"net/http"},{"filename":"asm_arm64.s","lineno":1133,"abs_path":"/usr/local/go/src/runtime/asm_arm64.s","function":"goexit","library_frame":true,"module":"runtime"}],"subtype":"http","transaction_id":"7ee16c99fb6efcc0"}} {"span":{"duration":75.673125,"id":"6044987106dba472","name":"GET opbeans-ruby:3000","timestamp":1646055569447075,"trace_id":"b8abd0ba7889855a514a527e1fbadaa7","type":"external","context":{"destination":{"address":"opbeans-ruby","port":3000,"service":{"name":"http://opbeans-ruby:3000","resource":"opbeans-ruby:3000","type":"external"}},"http":{"url":"http://opbeans-ruby:3000/api/products/6/customers","status_code":200}},"outcome":"success","parent_id":"7ee16c99fb6efcc0","sample_rate":1,"stacktrace":[{"filename":"span.go","lineno":368,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/v2@v2.0.0-20220125052152-dbce0fc5646c/span.go","function":"(*Span).End","library_frame":true,"module":"go.elastic.co/apm/v2"},{"filename":"client.go","lineno":198,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/client.go","function":"(*responseBody).endSpan","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"client.go","lineno":187,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/client.go","function":"(*responseBody).Read","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"reverseproxy.go","lineno":461,"abs_path":"/usr/local/go/src/net/http/httputil/reverseproxy.go","function":"(*ReverseProxy).copyBuffer","library_frame":true,"module":"net/http/httputil"},{"filename":"reverseproxy.go","lineno":449,"abs_path":"/usr/local/go/src/net/http/httputil/reverseproxy.go","function":"(*ReverseProxy).copyResponse","library_frame":true,"module":"net/http/httputil"},{"filename":"reverseproxy.go","lineno":338,"abs_path":"/usr/local/go/src/net/http/httputil/reverseproxy.go","function":"(*ReverseProxy).ServeHTTP","library_frame":true,"module":"net/http/httputil"},{"filename":"main.go","lineno":196,"abs_path":"/src/opbeans-go/main.go","function":"Main.func2","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"main.go","lineno":174,"abs_path":"/src/opbeans-go/main.go","function":"Main.func1","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"logger.go","lineno":36,"abs_path":"/src/opbeans-go/logger.go","function":"logrusMiddleware","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"middleware.go","lineno":104,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmgin/v2@v2.0.0-20220125052152-dbce0fc5646c/middleware.go","function":"(*middleware).handle","library_frame":true,"module":"go.elastic.co/apm/module/apmgin/v2"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"cache.go","lineno":128,"abs_path":"/go/pkg/mod/github.com/gin-contrib/cache@v1.1.0/cache.go","function":"Cache.func1","library_frame":true,"module":"github.com/gin-contrib/cache"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"gin.go","lineno":555,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/gin.go","function":"(*Engine).handleHTTPRequest","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"gin.go","lineno":511,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/gin.go","function":"(*Engine).ServeHTTP","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"server.go","lineno":2879,"abs_path":"/usr/local/go/src/net/http/server.go","function":"serverHandler.ServeHTTP","library_frame":true,"module":"net/http"},{"filename":"server.go","lineno":1930,"abs_path":"/usr/local/go/src/net/http/server.go","function":"(*conn).serve","library_frame":true,"module":"net/http"},{"filename":"asm_arm64.s","lineno":1133,"abs_path":"/usr/local/go/src/runtime/asm_arm64.s","function":"goexit","library_frame":true,"module":"runtime"}],"subtype":"http","transaction_id":"7ee16c99fb6efcc0"}} {"transaction":{"duration":75.917416,"id":"7ee16c99fb6efcc0","name":"GET /api/products/:id/customers","span_count":{"dropped":0,"started":3},"timestamp":1646055569446945,"trace_id":"b8abd0ba7889855a514a527e1fbadaa7","type":"request","context":{"request":{"method":"GET","url":{"hostname":"opbeans-go","pathname":"/api/products/6/customers","port":"3000","protocol":"http","full":"http://opbeans-go:3000/api/products/6/customers"},"headers":{"Elastic-Apm-Traceparent":"00-b8abd0ba7889855a514a527e1fbadaa7-2327c42ccf195587-01","Connection":"close","User-Agent":"http.rb/5.0.4","Traceparent":"00-b8abd0ba7889855a514a527e1fbadaa7-2327c42ccf195587-01","Tracestate":"es=s:1.0"},"http_version":"1.1","socket":{"remote_address":"172.23.0.12"}},"response":{"headers":{"Content-Type":"application/json; charset=utf-8"},"status_code":200},"service":{"framework":{"name":"gin","version":"v1.7.7"}}},"outcome":"success","parent_id":"2327c42ccf195587","result":"HTTP 2xx","sample_rate":1}} -{"metadata":{"system":{"architecture":"arm64","hostname":"3ff988a6070f","platform":"linux"},"process":{"pid":1,"argv":["/opbeans-go","-log-json","-log-level=debug","-listen=:3000","-frontend=/opbeans-frontend","-db=postgres:","-cache=redis://redis:6379"],"ppid":0,"title":"opbeans-go"},"service":{"agent":{"name":"go","version":"2.0.0"},"environment":"production","language":{"name":"go","version":"go1.17.7"},"name":"opbeans-go","runtime":{"name":"gc","version":"go1.17.7"},"version":"None"}}} {"span":{"duration":1.237083,"id":"784bcd6a431178e8","name":"SELECT FROM orders","timestamp":1646055570656030,"trace_id":"f162d4f5dcc3d4a7d65d714d1fb23ed6","type":"db","action":"query","context":{"db":{"statement":"SELECT\n orders.id, orders.created_at,\n customers.id, customers.full_name\nFROM orders JOIN customers ON orders.customer_id=customers.id\nLIMIT 1000\n","type":"sql","user":"postgres"},"destination":{"address":"postgres","port":5432,"service":{"name":"postgresql","resource":"postgresql","type":"db"}}},"outcome":"success","parent_id":"f162d4f5dcc3d4a7","sample_rate":1,"stacktrace":[],"subtype":"postgresql","transaction_id":"f162d4f5dcc3d4a7"}} {"transaction":{"duration":3.725458,"id":"f162d4f5dcc3d4a7","name":"GET /api/orders","span_count":{"dropped":0,"started":1},"timestamp":1646055570655969,"trace_id":"f162d4f5dcc3d4a7d65d714d1fb23ed6","type":"request","context":{"request":{"method":"GET","url":{"hostname":"localhost","pathname":"/api/orders","port":"3000","protocol":"http","full":"http://localhost:3000/api/orders"},"headers":{"User-Agent":"Go-http-client/1.1","Accept-Encoding":"gzip"},"http_version":"1.1","socket":{"remote_address":"127.0.0.1"}},"response":{"headers":{"Content-Type":"application/json; charset=utf-8"},"status_code":200},"service":{"framework":{"name":"gin","version":"v1.7.7"}}},"outcome":"success","result":"HTTP 2xx","sample_rate":1}} {"span":{"duration":0.874833,"id":"b5389df92f17ca5b","name":"SELECT FROM customers","timestamp":1646055571075133,"trace_id":"ee9e6bb193e2e0c9d7ac3c32472b9757","type":"db","action":"query","context":{"db":{"statement":"\nSELECT\n customers.id, full_name, company_name, email,\n address, postal_code, city, country\nFROM customers\nJOIN orders ON customers.id=orders.customer_id JOIN order_lines ON orders.id=order_lines.order_id WHERE order_lines.product_id=$1\nLIMIT 1000\n","type":"sql","user":"postgres"},"destination":{"address":"postgres","port":5432,"service":{"name":"postgresql","resource":"postgresql","type":"db"}}},"outcome":"success","parent_id":"5ad01574208f86fe","sample_rate":1,"stacktrace":[],"subtype":"postgresql","transaction_id":"5ad01574208f86fe"}} @@ -2291,7 +2277,6 @@ {"transaction":{"duration":24.640583,"id":"afcfcbc545d081ef","name":"GET /api/stats","span_count":{"dropped":0,"started":3},"timestamp":1646055578631974,"trace_id":"afcfcbc545d081ef34a8878354b55aa1","type":"request","context":{"request":{"method":"GET","url":{"hostname":"opbeans-go","pathname":"/api/stats","port":"3000","protocol":"http","full":"http://opbeans-go:3000/api/stats"},"headers":{"Accept":"*/*","Accept-Encoding":"gzip, deflate","User-Agent":"Python/3.7 aiohttp/3.3.2"},"http_version":"1.1","socket":{"remote_address":"172.23.0.14"}},"response":{"headers":{"Referrer-Policy":"strict-origin-when-cross-origin","Cache-Control":"max-age=0, private, must-revalidate","X-Permitted-Cross-Domain-Policies":"none","X-Request-Id":"b51640d5-7470-4fdc-b171-95da3602d65f","X-Runtime":"0.016657","X-Content-Type-Options":"nosniff","Etag":"W/\"37c402fff98fe986ebf5e3ba08420463\"","X-Frame-Options":"SAMEORIGIN","X-Xss-Protection":"1; mode=block","Vary":"Accept","X-Download-Options":"noopen","Content-Type":"application/json; charset=utf-8"},"status_code":200},"service":{"framework":{"name":"gin","version":"v1.7.7"}}},"outcome":"success","result":"HTTP 2xx","sample_rate":1}} {"span":{"duration":0.5042500000000001,"id":"96746372e0a79e8e","name":"DNS opbeans-python","timestamp":1646055578676238,"trace_id":"b03a615c582debbae24c7f10ace6865b","type":"external","action":"dns","outcome":"success","parent_id":"bdb067a8026e2e7a","sample_rate":1,"stacktrace":[],"subtype":"http","transaction_id":"b03a615c582debba"}} {"span":{"duration":0.089958,"id":"e8c0cc0245d8389b","name":"Connect 172.23.0.11:3000","timestamp":1646055578676747,"trace_id":"b03a615c582debbae24c7f10ace6865b","type":"external","action":"connect","outcome":"success","parent_id":"bdb067a8026e2e7a","sample_rate":1,"stacktrace":[],"subtype":"http","transaction_id":"b03a615c582debba"}} -{"metadata":{"system":{"architecture":"arm64","hostname":"3ff988a6070f","platform":"linux"},"process":{"pid":1,"argv":["/opbeans-go","-log-json","-log-level=debug","-listen=:3000","-frontend=/opbeans-frontend","-db=postgres:","-cache=redis://redis:6379"],"ppid":0,"title":"opbeans-go"},"service":{"agent":{"name":"go","version":"2.0.0"},"environment":"production","language":{"name":"go","version":"go1.17.7"},"name":"opbeans-go","runtime":{"name":"gc","version":"go1.17.7"},"version":"None"}}} {"span":{"duration":102.108542,"id":"96c1bca2542dc39c","name":"Request","timestamp":1646055580766272,"trace_id":"31940e28950ca4f7113f8e487d54cebb","type":"external","action":"request","outcome":"success","parent_id":"3aedf6f9ed68b2ab","sample_rate":1,"stacktrace":[{"filename":"span.go","lineno":368,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/v2@v2.0.0-20220125052152-dbce0fc5646c/span.go","function":"(*Span).End","library_frame":true,"module":"go.elastic.co/apm/v2"},{"filename":"clienttrace.go","lineno":130,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/clienttrace.go","function":"withClientTrace.func8","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"transport.go","lineno":2272,"abs_path":"/usr/local/go/src/net/http/transport.go","function":"(*persistConn).readResponse","library_frame":true,"module":"net/http"},{"filename":"transport.go","lineno":2102,"abs_path":"/usr/local/go/src/net/http/transport.go","function":"(*persistConn).readLoop","library_frame":true,"module":"net/http"},{"filename":"asm_arm64.s","lineno":1133,"abs_path":"/usr/local/go/src/runtime/asm_arm64.s","function":"goexit","library_frame":true,"module":"runtime"}],"subtype":"http","transaction_id":"36ae2aa6bb4a10a1"}} {"span":{"duration":102.676792,"id":"b44fad4a115d5306","name":"Request","timestamp":1646055580765987,"trace_id":"31940e28950ca4f7113f8e487d54cebb","type":"external","action":"request","outcome":"success","parent_id":"d2da3bfc680f7e4d","sample_rate":1,"stacktrace":[{"filename":"span.go","lineno":368,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/v2@v2.0.0-20220125052152-dbce0fc5646c/span.go","function":"(*Span).End","library_frame":true,"module":"go.elastic.co/apm/v2"},{"filename":"clienttrace.go","lineno":130,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/clienttrace.go","function":"withClientTrace.func8","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"transport.go","lineno":2272,"abs_path":"/usr/local/go/src/net/http/transport.go","function":"(*persistConn).readResponse","library_frame":true,"module":"net/http"},{"filename":"transport.go","lineno":2102,"abs_path":"/usr/local/go/src/net/http/transport.go","function":"(*persistConn).readLoop","library_frame":true,"module":"net/http"},{"filename":"asm_arm64.s","lineno":1133,"abs_path":"/usr/local/go/src/runtime/asm_arm64.s","function":"goexit","library_frame":true,"module":"runtime"}],"subtype":"http","transaction_id":"31940e28950ca4f7"}} {"span":{"duration":0.307917,"id":"3cfd336cfc60d438","name":"Response","timestamp":1646055580868408,"trace_id":"31940e28950ca4f7113f8e487d54cebb","type":"external","action":"response","outcome":"success","parent_id":"3aedf6f9ed68b2ab","sample_rate":1,"stacktrace":[],"subtype":"http","transaction_id":"36ae2aa6bb4a10a1"}} @@ -2543,7 +2528,6 @@ {"transaction":{"duration":315.47325,"id":"f968031130918935","name":"GET /api/products/:id","span_count":{"dropped":0,"started":3},"timestamp":1646055590475510,"trace_id":"f9680311309189351a0d09ee91b2368f","type":"request","context":{"request":{"method":"GET","url":{"hostname":"opbeans-go","pathname":"/api/products/top","port":"3000","protocol":"http","full":"http://opbeans-go:3000/api/products/top"},"headers":{"Accept":"*/*","Accept-Encoding":"gzip, deflate","User-Agent":"Python/3.7 aiohttp/3.3.2"},"http_version":"1.1","socket":{"remote_address":"172.23.0.14"}},"response":{"headers":{"Content-Type":"application/json; charset=utf-8"},"status_code":200},"service":{"framework":{"name":"gin","version":"v1.7.7"}}},"outcome":"success","result":"HTTP 2xx","sample_rate":1}} {"span":{"duration":0.35312499999999997,"id":"1e41dc513ad4cabb","name":"DNS opbeans-python","timestamp":1646055590810800,"trace_id":"8678f47a4cbd50842f07940abc7eef1d","type":"external","action":"dns","outcome":"success","parent_id":"2e30c4edd776bba9","sample_rate":1,"stacktrace":[],"subtype":"http","transaction_id":"8678f47a4cbd5084"}} {"span":{"duration":0.10008299999999999,"id":"e93bc3e3189bd6ec","name":"Connect 172.23.0.11:3000","timestamp":1646055590811174,"trace_id":"8678f47a4cbd50842f07940abc7eef1d","type":"external","action":"connect","outcome":"success","parent_id":"2e30c4edd776bba9","sample_rate":1,"stacktrace":[],"subtype":"http","transaction_id":"8678f47a4cbd5084"}} -{"metadata":{"system":{"architecture":"arm64","hostname":"3ff988a6070f","platform":"linux"},"process":{"pid":1,"argv":["/opbeans-go","-log-json","-log-level=debug","-listen=:3000","-frontend=/opbeans-frontend","-db=postgres:","-cache=redis://redis:6379"],"ppid":0,"title":"opbeans-go"},"service":{"agent":{"name":"go","version":"2.0.0"},"environment":"production","language":{"name":"go","version":"go1.17.7"},"name":"opbeans-go","runtime":{"name":"gc","version":"go1.17.7"},"version":"None"}}} {"span":{"duration":116.12104199999999,"id":"ee953d4459ff0627","name":"Request","timestamp":1646055590811294,"trace_id":"8678f47a4cbd50842f07940abc7eef1d","type":"external","action":"request","outcome":"success","parent_id":"2e30c4edd776bba9","sample_rate":1,"stacktrace":[{"filename":"span.go","lineno":368,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/v2@v2.0.0-20220125052152-dbce0fc5646c/span.go","function":"(*Span).End","library_frame":true,"module":"go.elastic.co/apm/v2"},{"filename":"clienttrace.go","lineno":130,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/clienttrace.go","function":"withClientTrace.func8","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"transport.go","lineno":2272,"abs_path":"/usr/local/go/src/net/http/transport.go","function":"(*persistConn).readResponse","library_frame":true,"module":"net/http"},{"filename":"transport.go","lineno":2102,"abs_path":"/usr/local/go/src/net/http/transport.go","function":"(*persistConn).readLoop","library_frame":true,"module":"net/http"},{"filename":"asm_arm64.s","lineno":1133,"abs_path":"/usr/local/go/src/runtime/asm_arm64.s","function":"goexit","library_frame":true,"module":"runtime"}],"subtype":"http","transaction_id":"8678f47a4cbd5084"}} {"span":{"duration":5.793583,"id":"44aa5f5ac5498446","name":"Response","timestamp":1646055590927451,"trace_id":"8678f47a4cbd50842f07940abc7eef1d","type":"external","action":"response","outcome":"success","parent_id":"2e30c4edd776bba9","sample_rate":1,"stacktrace":[{"filename":"span.go","lineno":368,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/v2@v2.0.0-20220125052152-dbce0fc5646c/span.go","function":"(*Span).End","library_frame":true,"module":"go.elastic.co/apm/v2"},{"filename":"clienttrace.go","lineno":144,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/clienttrace.go","function":"(*requestTracer).end","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"client.go","lineno":196,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/client.go","function":"(*responseBody).endSpan","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"client.go","lineno":178,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/client.go","function":"(*responseBody).Close","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"panic.go","lineno":1052,"abs_path":"/usr/local/go/src/runtime/panic.go","function":"gopanic","library_frame":true,"module":"runtime"},{"filename":"reverseproxy.go","lineno":348,"abs_path":"/usr/local/go/src/net/http/httputil/reverseproxy.go","function":"(*ReverseProxy).ServeHTTP","library_frame":true,"module":"net/http/httputil"},{"filename":"main.go","lineno":196,"abs_path":"/src/opbeans-go/main.go","function":"Main.func2","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"main.go","lineno":174,"abs_path":"/src/opbeans-go/main.go","function":"Main.func1","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"logger.go","lineno":36,"abs_path":"/src/opbeans-go/logger.go","function":"logrusMiddleware","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"middleware.go","lineno":104,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmgin/v2@v2.0.0-20220125052152-dbce0fc5646c/middleware.go","function":"(*middleware).handle","library_frame":true,"module":"go.elastic.co/apm/module/apmgin/v2"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"cache.go","lineno":128,"abs_path":"/go/pkg/mod/github.com/gin-contrib/cache@v1.1.0/cache.go","function":"Cache.func1","library_frame":true,"module":"github.com/gin-contrib/cache"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"gin.go","lineno":555,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/gin.go","function":"(*Engine).handleHTTPRequest","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"gin.go","lineno":511,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/gin.go","function":"(*Engine).ServeHTTP","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"server.go","lineno":2879,"abs_path":"/usr/local/go/src/net/http/server.go","function":"serverHandler.ServeHTTP","library_frame":true,"module":"net/http"},{"filename":"server.go","lineno":1930,"abs_path":"/usr/local/go/src/net/http/server.go","function":"(*conn).serve","library_frame":true,"module":"net/http"},{"filename":"asm_arm64.s","lineno":1133,"abs_path":"/usr/local/go/src/runtime/asm_arm64.s","function":"goexit","library_frame":true,"module":"runtime"}],"subtype":"http","transaction_id":"8678f47a4cbd5084"}} {"span":{"duration":122.54670800000001,"id":"2e30c4edd776bba9","name":"GET opbeans-python:3000","timestamp":1646055590810759,"trace_id":"8678f47a4cbd50842f07940abc7eef1d","type":"external","context":{"destination":{"address":"opbeans-python","port":3000,"service":{"name":"http://opbeans-python:3000","resource":"opbeans-python:3000","type":"external"}},"http":{"url":"http://opbeans-python:3000/api/products/6/customers?limit=50","status_code":200}},"outcome":"success","parent_id":"8678f47a4cbd5084","sample_rate":1,"stacktrace":[{"filename":"span.go","lineno":368,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/v2@v2.0.0-20220125052152-dbce0fc5646c/span.go","function":"(*Span).End","library_frame":true,"module":"go.elastic.co/apm/v2"},{"filename":"client.go","lineno":198,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/client.go","function":"(*responseBody).endSpan","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"client.go","lineno":178,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/client.go","function":"(*responseBody).Close","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"panic.go","lineno":1052,"abs_path":"/usr/local/go/src/runtime/panic.go","function":"gopanic","library_frame":true,"module":"runtime"},{"filename":"reverseproxy.go","lineno":348,"abs_path":"/usr/local/go/src/net/http/httputil/reverseproxy.go","function":"(*ReverseProxy).ServeHTTP","library_frame":true,"module":"net/http/httputil"},{"filename":"main.go","lineno":196,"abs_path":"/src/opbeans-go/main.go","function":"Main.func2","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"main.go","lineno":174,"abs_path":"/src/opbeans-go/main.go","function":"Main.func1","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"logger.go","lineno":36,"abs_path":"/src/opbeans-go/logger.go","function":"logrusMiddleware","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"middleware.go","lineno":104,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmgin/v2@v2.0.0-20220125052152-dbce0fc5646c/middleware.go","function":"(*middleware).handle","library_frame":true,"module":"go.elastic.co/apm/module/apmgin/v2"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"cache.go","lineno":128,"abs_path":"/go/pkg/mod/github.com/gin-contrib/cache@v1.1.0/cache.go","function":"Cache.func1","library_frame":true,"module":"github.com/gin-contrib/cache"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"gin.go","lineno":555,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/gin.go","function":"(*Engine).handleHTTPRequest","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"gin.go","lineno":511,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/gin.go","function":"(*Engine).ServeHTTP","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"server.go","lineno":2879,"abs_path":"/usr/local/go/src/net/http/server.go","function":"serverHandler.ServeHTTP","library_frame":true,"module":"net/http"},{"filename":"server.go","lineno":1930,"abs_path":"/usr/local/go/src/net/http/server.go","function":"(*conn).serve","library_frame":true,"module":"net/http"},{"filename":"asm_arm64.s","lineno":1133,"abs_path":"/usr/local/go/src/runtime/asm_arm64.s","function":"goexit","library_frame":true,"module":"runtime"}],"subtype":"http","transaction_id":"8678f47a4cbd5084"}} @@ -2635,7 +2619,6 @@ {"transaction":{"duration":1.934291,"id":"1efd18b6ba57a7cd","name":"GET /api/customers/:id","span_count":{"dropped":0,"started":3},"timestamp":1646055600842074,"trace_id":"1efd18b6ba57a7cdbbdb0058526bb38a","type":"request","context":{"request":{"method":"GET","url":{"hostname":"opbeans-go","pathname":"/api/customers/790","port":"3000","protocol":"http","full":"http://opbeans-go:3000/api/customers/790"},"headers":{"User-Agent":"Python/3.7 aiohttp/3.3.2","Accept":"*/*","Accept-Encoding":"gzip, deflate"},"http_version":"1.1","socket":{"remote_address":"172.23.0.14"}},"response":{"headers":{"Date":"Mon, 28 Feb 2022 13:40:00 GMT","Content-Length":"0"},"status_code":502},"service":{"framework":{"name":"gin","version":"v1.7.7"}}},"outcome":"failure","result":"HTTP 5xx","sample_rate":1}} {"span":{"duration":1.868,"id":"9dc2a035c1da2669","name":"DNS opbeans-python","timestamp":1646055600872124,"trace_id":"ad00c7497af05f2b24ac9b1197575332","type":"external","action":"dns","outcome":"success","parent_id":"b8f91e07ba5155c9","sample_rate":1,"stacktrace":[],"subtype":"http","transaction_id":"ad00c7497af05f2b"}} {"span":{"duration":0.53625,"id":"efb2078b6649feb3","name":"Connect 172.23.0.11:3000","timestamp":1646055600874056,"trace_id":"ad00c7497af05f2b24ac9b1197575332","type":"external","action":"connect","outcome":"success","parent_id":"b8f91e07ba5155c9","sample_rate":1,"stacktrace":[],"subtype":"http","transaction_id":"ad00c7497af05f2b"}} -{"metadata":{"system":{"architecture":"arm64","hostname":"3ff988a6070f","platform":"linux"},"process":{"pid":1,"argv":["/opbeans-go","-log-json","-log-level=debug","-listen=:3000","-frontend=/opbeans-frontend","-db=postgres:","-cache=redis://redis:6379"],"ppid":0,"title":"opbeans-go"},"service":{"agent":{"name":"go","version":"2.0.0"},"environment":"production","language":{"name":"go","version":"go1.17.7"},"name":"opbeans-go","runtime":{"name":"gc","version":"go1.17.7"},"version":"None"}}} {"span":{"duration":70.099833,"id":"4aedb921e37a9b48","name":"Request","timestamp":1646055600874619,"trace_id":"ad00c7497af05f2b24ac9b1197575332","type":"external","action":"request","outcome":"success","parent_id":"b8f91e07ba5155c9","sample_rate":1,"stacktrace":[{"filename":"span.go","lineno":368,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/v2@v2.0.0-20220125052152-dbce0fc5646c/span.go","function":"(*Span).End","library_frame":true,"module":"go.elastic.co/apm/v2"},{"filename":"clienttrace.go","lineno":130,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/clienttrace.go","function":"withClientTrace.func8","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"transport.go","lineno":2272,"abs_path":"/usr/local/go/src/net/http/transport.go","function":"(*persistConn).readResponse","library_frame":true,"module":"net/http"},{"filename":"transport.go","lineno":2102,"abs_path":"/usr/local/go/src/net/http/transport.go","function":"(*persistConn).readLoop","library_frame":true,"module":"net/http"},{"filename":"asm_arm64.s","lineno":1133,"abs_path":"/usr/local/go/src/runtime/asm_arm64.s","function":"goexit","library_frame":true,"module":"runtime"}],"subtype":"http","transaction_id":"ad00c7497af05f2b"}} {"span":{"duration":4.323417,"id":"400fdd68aae40973","name":"Response","timestamp":1646055600944768,"trace_id":"ad00c7497af05f2b24ac9b1197575332","type":"external","action":"response","outcome":"success","parent_id":"b8f91e07ba5155c9","sample_rate":1,"stacktrace":[],"subtype":"http","transaction_id":"ad00c7497af05f2b"}} {"span":{"duration":77.058,"id":"b8f91e07ba5155c9","name":"GET opbeans-python:3000","timestamp":1646055600872040,"trace_id":"ad00c7497af05f2b24ac9b1197575332","type":"external","context":{"destination":{"address":"opbeans-python","port":3000,"service":{"name":"http://opbeans-python:3000","resource":"opbeans-python:3000","type":"external"}},"http":{"url":"http://opbeans-python:3000/api/types","status_code":200}},"outcome":"success","parent_id":"ad00c7497af05f2b","sample_rate":1,"stacktrace":[{"filename":"span.go","lineno":368,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/v2@v2.0.0-20220125052152-dbce0fc5646c/span.go","function":"(*Span).End","library_frame":true,"module":"go.elastic.co/apm/v2"},{"filename":"client.go","lineno":198,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/client.go","function":"(*responseBody).endSpan","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"client.go","lineno":187,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/client.go","function":"(*responseBody).Read","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"reverseproxy.go","lineno":461,"abs_path":"/usr/local/go/src/net/http/httputil/reverseproxy.go","function":"(*ReverseProxy).copyBuffer","library_frame":true,"module":"net/http/httputil"},{"filename":"reverseproxy.go","lineno":449,"abs_path":"/usr/local/go/src/net/http/httputil/reverseproxy.go","function":"(*ReverseProxy).copyResponse","library_frame":true,"module":"net/http/httputil"},{"filename":"reverseproxy.go","lineno":338,"abs_path":"/usr/local/go/src/net/http/httputil/reverseproxy.go","function":"(*ReverseProxy).ServeHTTP","library_frame":true,"module":"net/http/httputil"},{"filename":"main.go","lineno":196,"abs_path":"/src/opbeans-go/main.go","function":"Main.func2","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"main.go","lineno":174,"abs_path":"/src/opbeans-go/main.go","function":"Main.func1","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"logger.go","lineno":36,"abs_path":"/src/opbeans-go/logger.go","function":"logrusMiddleware","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"middleware.go","lineno":104,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmgin/v2@v2.0.0-20220125052152-dbce0fc5646c/middleware.go","function":"(*middleware).handle","library_frame":true,"module":"go.elastic.co/apm/module/apmgin/v2"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"cache.go","lineno":128,"abs_path":"/go/pkg/mod/github.com/gin-contrib/cache@v1.1.0/cache.go","function":"Cache.func1","library_frame":true,"module":"github.com/gin-contrib/cache"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"gin.go","lineno":555,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/gin.go","function":"(*Engine).handleHTTPRequest","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"gin.go","lineno":511,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/gin.go","function":"(*Engine).ServeHTTP","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"server.go","lineno":2879,"abs_path":"/usr/local/go/src/net/http/server.go","function":"serverHandler.ServeHTTP","library_frame":true,"module":"net/http"},{"filename":"server.go","lineno":1930,"abs_path":"/usr/local/go/src/net/http/server.go","function":"(*conn).serve","library_frame":true,"module":"net/http"},{"filename":"asm_arm64.s","lineno":1133,"abs_path":"/usr/local/go/src/runtime/asm_arm64.s","function":"goexit","library_frame":true,"module":"runtime"}],"subtype":"http","transaction_id":"ad00c7497af05f2b"}} @@ -2907,7 +2890,6 @@ {"span":{"duration":2.509833,"id":"c6b870025c245089","name":"Response","timestamp":1646055610942495,"trace_id":"1d2637b99c89cd998620a3bea37e4fa3","type":"external","action":"response","outcome":"success","parent_id":"f4a3c0e49cd9abec","sample_rate":1,"stacktrace":[],"subtype":"http","transaction_id":"1d2637b99c89cd99"}} {"span":{"duration":83.649709,"id":"f4a3c0e49cd9abec","name":"GET opbeans-python:3000","timestamp":1646055610861359,"trace_id":"1d2637b99c89cd998620a3bea37e4fa3","type":"external","context":{"destination":{"address":"opbeans-python","port":3000,"service":{"name":"http://opbeans-python:3000","resource":"opbeans-python:3000","type":"external"}},"http":{"url":"http://opbeans-python:3000/api/stats","status_code":200}},"outcome":"success","parent_id":"1d2637b99c89cd99","sample_rate":1,"stacktrace":[{"filename":"span.go","lineno":368,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/v2@v2.0.0-20220125052152-dbce0fc5646c/span.go","function":"(*Span).End","library_frame":true,"module":"go.elastic.co/apm/v2"},{"filename":"client.go","lineno":198,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/client.go","function":"(*responseBody).endSpan","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"client.go","lineno":187,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/client.go","function":"(*responseBody).Read","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"reverseproxy.go","lineno":461,"abs_path":"/usr/local/go/src/net/http/httputil/reverseproxy.go","function":"(*ReverseProxy).copyBuffer","library_frame":true,"module":"net/http/httputil"},{"filename":"reverseproxy.go","lineno":449,"abs_path":"/usr/local/go/src/net/http/httputil/reverseproxy.go","function":"(*ReverseProxy).copyResponse","library_frame":true,"module":"net/http/httputil"},{"filename":"reverseproxy.go","lineno":338,"abs_path":"/usr/local/go/src/net/http/httputil/reverseproxy.go","function":"(*ReverseProxy).ServeHTTP","library_frame":true,"module":"net/http/httputil"},{"filename":"main.go","lineno":196,"abs_path":"/src/opbeans-go/main.go","function":"Main.func2","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"main.go","lineno":174,"abs_path":"/src/opbeans-go/main.go","function":"Main.func1","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"logger.go","lineno":36,"abs_path":"/src/opbeans-go/logger.go","function":"logrusMiddleware","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"middleware.go","lineno":104,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmgin/v2@v2.0.0-20220125052152-dbce0fc5646c/middleware.go","function":"(*middleware).handle","library_frame":true,"module":"go.elastic.co/apm/module/apmgin/v2"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"cache.go","lineno":128,"abs_path":"/go/pkg/mod/github.com/gin-contrib/cache@v1.1.0/cache.go","function":"Cache.func1","library_frame":true,"module":"github.com/gin-contrib/cache"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"gin.go","lineno":555,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/gin.go","function":"(*Engine).handleHTTPRequest","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"gin.go","lineno":511,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/gin.go","function":"(*Engine).ServeHTTP","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"server.go","lineno":2879,"abs_path":"/usr/local/go/src/net/http/server.go","function":"serverHandler.ServeHTTP","library_frame":true,"module":"net/http"},{"filename":"server.go","lineno":1930,"abs_path":"/usr/local/go/src/net/http/server.go","function":"(*conn).serve","library_frame":true,"module":"net/http"},{"filename":"asm_arm64.s","lineno":1133,"abs_path":"/usr/local/go/src/runtime/asm_arm64.s","function":"goexit","library_frame":true,"module":"runtime"}],"subtype":"http","transaction_id":"1d2637b99c89cd99"}} {"transaction":{"duration":84.162751,"id":"1d2637b99c89cd99","name":"GET /api/stats","span_count":{"dropped":0,"started":5},"timestamp":1646055610861122,"trace_id":"1d2637b99c89cd998620a3bea37e4fa3","type":"request","context":{"request":{"method":"GET","url":{"hostname":"opbeans-go","pathname":"/api/stats","port":"3000","protocol":"http","full":"http://opbeans-go:3000/api/stats"},"headers":{"Accept":"*/*","Accept-Encoding":"gzip, deflate","User-Agent":"Python/3.7 aiohttp/3.3.2"},"http_version":"1.1","socket":{"remote_address":"172.23.0.14"}},"response":{"headers":{"Server":"gunicorn","X-Frame-Options":"DENY","X-Content-Type-Options":"nosniff","Referrer-Policy":"same-origin","Date":"Mon, 28 Feb 2022 13:40:10 GMT","Content-Type":"application/json; charset=utf-8","Content-Length":"110","Vary":"Cookie"},"status_code":200},"service":{"framework":{"name":"gin","version":"v1.7.7"}}},"outcome":"success","result":"HTTP 2xx","sample_rate":1}} -{"metadata":{"system":{"architecture":"arm64","hostname":"3ff988a6070f","platform":"linux"},"process":{"pid":1,"argv":["/opbeans-go","-log-json","-log-level=debug","-listen=:3000","-frontend=/opbeans-frontend","-db=postgres:","-cache=redis://redis:6379"],"ppid":0,"title":"opbeans-go"},"service":{"agent":{"name":"go","version":"2.0.0"},"environment":"production","language":{"name":"go","version":"go1.17.7"},"name":"opbeans-go","runtime":{"name":"gc","version":"go1.17.7"},"version":"None"}}} {"span":{"duration":0.407417,"id":"5b1cf57d55d02d58","name":"SELECT FROM products","timestamp":1646055610966060,"trace_id":"0b1010fa9ba9f4452f9bbe3a215198e3","type":"db","action":"query","context":{"db":{"statement":"SELECT\n products.id, products.sku, products.name, products.description,\n products.stock, products.cost, products.selling_price,\n products.type_id, product_types.name\nFROM products JOIN product_types ON type_id=product_types.id\n","type":"sql","user":"postgres"},"destination":{"address":"postgres","port":5432,"service":{"name":"postgresql","resource":"postgresql","type":"db"}}},"outcome":"success","parent_id":"0b1010fa9ba9f445","sample_rate":1,"stacktrace":[],"subtype":"postgresql","transaction_id":"0b1010fa9ba9f445"}} {"transaction":{"duration":0.683625,"id":"0b1010fa9ba9f445","name":"GET /api/products","span_count":{"dropped":0,"started":1},"timestamp":1646055610966037,"trace_id":"0b1010fa9ba9f4452f9bbe3a215198e3","type":"request","context":{"request":{"method":"GET","url":{"hostname":"opbeans-go","pathname":"/api/products","port":"3000","protocol":"http","full":"http://opbeans-go:3000/api/products"},"headers":{"Accept":"*/*","Accept-Encoding":"gzip, deflate","User-Agent":"Python/3.7 aiohttp/3.3.2"},"http_version":"1.1","socket":{"remote_address":"172.23.0.14"}},"response":{"headers":{"Content-Type":"application/json; charset=utf-8"},"status_code":200},"service":{"framework":{"name":"gin","version":"v1.7.7"}}},"outcome":"success","result":"HTTP 2xx","sample_rate":1}} {"span":{"duration":1.284042,"id":"33a3c82052be30ab","name":"SELECT FROM orders","timestamp":1646055610992030,"trace_id":"fa7982e6000e7d18bb6f644a149481c6","type":"db","action":"query","context":{"db":{"statement":"SELECT\n orders.id, orders.created_at, customer_id\nFROM orders WHERE orders.id=$1","type":"sql","user":"postgres"},"destination":{"address":"postgres","port":5432,"service":{"name":"postgresql","resource":"postgresql","type":"db"}}},"outcome":"success","parent_id":"7497a7e663e6d882","sample_rate":1,"stacktrace":[],"subtype":"postgresql","transaction_id":"7497a7e663e6d882"}} @@ -3032,7 +3014,6 @@ {"span":{"duration":0.055875,"id":"917f05577b4397cf","name":"Response","timestamp":1646055621001243,"trace_id":"fc9859fc3eb3ad0fbc73b071d57e0c30","type":"external","action":"response","outcome":"success","parent_id":"c468b0d8f5c595fb","sample_rate":1,"stacktrace":[],"subtype":"http","transaction_id":"fc9859fc3eb3ad0f"}} {"span":{"duration":106.118625,"id":"c468b0d8f5c595fb","name":"GET opbeans-go:3000","timestamp":1646055620895180,"trace_id":"fc9859fc3eb3ad0fbc73b071d57e0c30","type":"external","context":{"destination":{"address":"opbeans-go","port":3000,"service":{"name":"http://opbeans-go:3000","resource":"opbeans-go:3000","type":"external"}},"http":{"url":"http://opbeans-go:3000/api/products/top","status_code":200}},"outcome":"success","parent_id":"fc9859fc3eb3ad0f","sample_rate":1,"stacktrace":[{"filename":"span.go","lineno":368,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/v2@v2.0.0-20220125052152-dbce0fc5646c/span.go","function":"(*Span).End","library_frame":true,"module":"go.elastic.co/apm/v2"},{"filename":"client.go","lineno":198,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/client.go","function":"(*responseBody).endSpan","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"client.go","lineno":187,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/client.go","function":"(*responseBody).Read","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"reverseproxy.go","lineno":461,"abs_path":"/usr/local/go/src/net/http/httputil/reverseproxy.go","function":"(*ReverseProxy).copyBuffer","library_frame":true,"module":"net/http/httputil"},{"filename":"reverseproxy.go","lineno":449,"abs_path":"/usr/local/go/src/net/http/httputil/reverseproxy.go","function":"(*ReverseProxy).copyResponse","library_frame":true,"module":"net/http/httputil"},{"filename":"reverseproxy.go","lineno":338,"abs_path":"/usr/local/go/src/net/http/httputil/reverseproxy.go","function":"(*ReverseProxy).ServeHTTP","library_frame":true,"module":"net/http/httputil"},{"filename":"main.go","lineno":196,"abs_path":"/src/opbeans-go/main.go","function":"Main.func2","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"main.go","lineno":174,"abs_path":"/src/opbeans-go/main.go","function":"Main.func1","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"logger.go","lineno":36,"abs_path":"/src/opbeans-go/logger.go","function":"logrusMiddleware","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"middleware.go","lineno":104,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmgin/v2@v2.0.0-20220125052152-dbce0fc5646c/middleware.go","function":"(*middleware).handle","library_frame":true,"module":"go.elastic.co/apm/module/apmgin/v2"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"cache.go","lineno":128,"abs_path":"/go/pkg/mod/github.com/gin-contrib/cache@v1.1.0/cache.go","function":"Cache.func1","library_frame":true,"module":"github.com/gin-contrib/cache"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"gin.go","lineno":555,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/gin.go","function":"(*Engine).handleHTTPRequest","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"gin.go","lineno":511,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/gin.go","function":"(*Engine).ServeHTTP","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"server.go","lineno":2879,"abs_path":"/usr/local/go/src/net/http/server.go","function":"serverHandler.ServeHTTP","library_frame":true,"module":"net/http"},{"filename":"server.go","lineno":1930,"abs_path":"/usr/local/go/src/net/http/server.go","function":"(*conn).serve","library_frame":true,"module":"net/http"},{"filename":"asm_arm64.s","lineno":1133,"abs_path":"/usr/local/go/src/runtime/asm_arm64.s","function":"goexit","library_frame":true,"module":"runtime"}],"subtype":"http","transaction_id":"fc9859fc3eb3ad0f"}} {"transaction":{"duration":106.496167,"id":"fc9859fc3eb3ad0f","name":"GET /api/products/:id","span_count":{"dropped":0,"started":3},"timestamp":1646055620894933,"trace_id":"fc9859fc3eb3ad0fbc73b071d57e0c30","type":"request","context":{"request":{"method":"GET","url":{"hostname":"opbeans-go","pathname":"/api/products/top","port":"3000","protocol":"http","full":"http://opbeans-go:3000/api/products/top"},"headers":{"Accept":"*/*","Accept-Encoding":"gzip, deflate","User-Agent":"Python/3.7 aiohttp/3.3.2"},"http_version":"1.1","socket":{"remote_address":"172.23.0.14"}},"response":{"headers":{"X-Powered-By":"Express","Content-Length":"275","Content-Type":"application/json; charset=utf-8","Date":"Mon, 28 Feb 2022 13:40:20 GMT","Etag":"W/\"113-kGf/4E6c4vAA/SGw6gYFM6YnwsY\""},"status_code":200},"service":{"framework":{"name":"gin","version":"v1.7.7"}}},"outcome":"success","result":"HTTP 2xx","sample_rate":1}} -{"metadata":{"system":{"architecture":"arm64","hostname":"3ff988a6070f","platform":"linux"},"process":{"pid":1,"argv":["/opbeans-go","-log-json","-log-level=debug","-listen=:3000","-frontend=/opbeans-frontend","-db=postgres:","-cache=redis://redis:6379"],"ppid":0,"title":"opbeans-go"},"service":{"agent":{"name":"go","version":"2.0.0"},"environment":"production","language":{"name":"go","version":"go1.17.7"},"name":"opbeans-go","runtime":{"name":"gc","version":"go1.17.7"},"version":"None"}}} {"span":{"duration":1.800959,"id":"3d1273dda451538e","name":"SELECT FROM customers","timestamp":1646055621019858,"trace_id":"fbf9f61eab638982d3836441f82cdbaa","type":"db","action":"query","context":{"db":{"statement":"\nSELECT\n customers.id, full_name, company_name, email,\n address, postal_code, city, country\nFROM customers\nJOIN orders ON customers.id=orders.customer_id JOIN order_lines ON orders.id=order_lines.order_id WHERE order_lines.product_id=$1\nLIMIT 1000\n","type":"sql","user":"postgres"},"destination":{"address":"postgres","port":5432,"service":{"name":"postgresql","resource":"postgresql","type":"db"}}},"outcome":"success","parent_id":"fbf9f61eab638982","sample_rate":1,"stacktrace":[],"subtype":"postgresql","transaction_id":"fbf9f61eab638982"}} {"transaction":{"duration":4.321707999999999,"id":"fbf9f61eab638982","name":"GET /api/products/:id/customers","span_count":{"dropped":0,"started":1},"timestamp":1646055621019805,"trace_id":"fbf9f61eab638982d3836441f82cdbaa","type":"request","context":{"request":{"method":"GET","url":{"hostname":"opbeans-go","pathname":"/api/products/4/customers","port":"3000","protocol":"http","full":"http://opbeans-go:3000/api/products/4/customers"},"headers":{"Accept":"*/*","Accept-Encoding":"gzip, deflate","User-Agent":"Python/3.7 aiohttp/3.3.2"},"http_version":"1.1","socket":{"remote_address":"172.23.0.14"}},"response":{"headers":{"Content-Type":"application/json; charset=utf-8"},"status_code":200},"service":{"framework":{"name":"gin","version":"v1.7.7"}}},"outcome":"success","result":"HTTP 2xx","sample_rate":1}} {"span":{"duration":115.214126,"id":"309e108b65e4d4ba","name":"Request","timestamp":1646055621058540,"trace_id":"8815c6da372e8e898c12149653fbb38b","type":"external","action":"request","outcome":"success","parent_id":"87b70cf624c5dae7","sample_rate":1,"stacktrace":[{"filename":"span.go","lineno":368,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/v2@v2.0.0-20220125052152-dbce0fc5646c/span.go","function":"(*Span).End","library_frame":true,"module":"go.elastic.co/apm/v2"},{"filename":"clienttrace.go","lineno":130,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/clienttrace.go","function":"withClientTrace.func8","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"transport.go","lineno":2272,"abs_path":"/usr/local/go/src/net/http/transport.go","function":"(*persistConn).readResponse","library_frame":true,"module":"net/http"},{"filename":"transport.go","lineno":2102,"abs_path":"/usr/local/go/src/net/http/transport.go","function":"(*persistConn).readLoop","library_frame":true,"module":"net/http"},{"filename":"asm_arm64.s","lineno":1133,"abs_path":"/usr/local/go/src/runtime/asm_arm64.s","function":"goexit","library_frame":true,"module":"runtime"}],"subtype":"http","transaction_id":"8815c6da372e8e89"}} @@ -3235,7 +3216,6 @@ {"span":{"duration":0.14525000000000002,"id":"b5b570631a71112c","name":"Connect 172.23.0.11:3000","timestamp":1646055629628057,"trace_id":"f6c5c167252652a5885af791292f98be","type":"external","action":"connect","outcome":"success","parent_id":"c00ae5fcbd8d8cb3","sample_rate":1,"stacktrace":[],"subtype":"http","transaction_id":"f1796d0073197ce5"}} {"span":{"duration":0.363667,"id":"b00c0d9a605f41bc","name":"DNS opbeans-python","timestamp":1646055630038962,"trace_id":"1a4b124e9e8e0ae703f2020c05406e62","type":"external","action":"dns","outcome":"success","parent_id":"4404d070e67f4987","sample_rate":1,"stacktrace":[],"subtype":"http","transaction_id":"79955a09d7da4e40"}} {"span":{"duration":0.093584,"id":"8d23e8c2430d528e","name":"Connect 172.23.0.11:3000","timestamp":1646055630039351,"trace_id":"1a4b124e9e8e0ae703f2020c05406e62","type":"external","action":"connect","outcome":"success","parent_id":"4404d070e67f4987","sample_rate":1,"stacktrace":[],"subtype":"http","transaction_id":"79955a09d7da4e40"}} -{"metadata":{"system":{"architecture":"arm64","hostname":"3ff988a6070f","platform":"linux"},"process":{"pid":1,"argv":["/opbeans-go","-log-json","-log-level=debug","-listen=:3000","-frontend=/opbeans-frontend","-db=postgres:","-cache=redis://redis:6379"],"ppid":0,"title":"opbeans-go"},"service":{"agent":{"name":"go","version":"2.0.0"},"environment":"production","language":{"name":"go","version":"go1.17.7"},"name":"opbeans-go","runtime":{"name":"gc","version":"go1.17.7"},"version":"None"}}} {"span":{"duration":0.539292,"id":"e845085f07eb6930","name":"DNS opbeans-python","timestamp":1646055633111169,"trace_id":"fc10702dc9544278de9f3463b7d00d20","type":"external","action":"dns","outcome":"success","parent_id":"b190a539b014bde1","sample_rate":1,"stacktrace":[],"subtype":"http","transaction_id":"27fdc9589d85a069"}} {"span":{"duration":0.38949999999999996,"id":"883dfb568db16383","name":"Connect 172.23.0.11:3000","timestamp":1646055633111720,"trace_id":"fc10702dc9544278de9f3463b7d00d20","type":"external","action":"connect","outcome":"success","parent_id":"b190a539b014bde1","sample_rate":1,"stacktrace":[],"subtype":"http","transaction_id":"27fdc9589d85a069"}} {"span":{"duration":3763.502086,"id":"bda528fee6e239f0","name":"Request","timestamp":1646055630039455,"trace_id":"1a4b124e9e8e0ae703f2020c05406e62","type":"external","action":"request","outcome":"success","parent_id":"4404d070e67f4987","sample_rate":1,"stacktrace":[{"filename":"span.go","lineno":368,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/v2@v2.0.0-20220125052152-dbce0fc5646c/span.go","function":"(*Span).End","library_frame":true,"module":"go.elastic.co/apm/v2"},{"filename":"clienttrace.go","lineno":130,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/clienttrace.go","function":"withClientTrace.func8","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"transport.go","lineno":2272,"abs_path":"/usr/local/go/src/net/http/transport.go","function":"(*persistConn).readResponse","library_frame":true,"module":"net/http"},{"filename":"transport.go","lineno":2102,"abs_path":"/usr/local/go/src/net/http/transport.go","function":"(*persistConn).readLoop","library_frame":true,"module":"net/http"},{"filename":"asm_arm64.s","lineno":1133,"abs_path":"/usr/local/go/src/runtime/asm_arm64.s","function":"goexit","library_frame":true,"module":"runtime"}],"subtype":"http","transaction_id":"79955a09d7da4e40"}} @@ -3964,7 +3944,6 @@ {"metricset":{"samples":{"span.self_time.count":{"value":38},"span.self_time.sum.us":{"value":11484.000000998}},"timestamp":1646055642780911,"span":{"type":"app"},"transaction":{"name":"GET /api/orders/:id","type":"request"}}} {"metricset":{"samples":{"span.self_time.count":{"value":20},"span.self_time.sum.us":{"value":255639.000000625}},"timestamp":1646055642780911,"span":{"subtype":"http","type":"external"},"transaction":{"name":"GET /api/types/:id","type":"request"}}} {"metricset":{"samples":{"golang.heap.allocations.total":{"value":1.63849664e+08},"golang.heap.allocations.allocated":{"value":7.581584e+06},"golang.heap.allocations.active":{"value":1.0264576e+07},"golang.heap.system.total":{"value":2.4462344e+07},"system.process.cpu.total.norm.pct":{"value":0.0044888625391716775},"system.memory.total":{"value":1.2544401408e+10},"system.memory.actual.free":{"value":7.001280512e+09},"golang.heap.allocations.frees":{"value":2.387826e+06},"golang.heap.system.stack":{"value":917504},"golang.heap.gc.total_pause.ns":{"value":1.9973751e+07},"golang.goroutines":{"value":40},"system.cpu.total.norm.pct":{"value":0.8693995087659863},"golang.heap.allocations.objects":{"value":20221},"golang.heap.system.obtained":{"value":1.5859712e+07},"golang.heap.gc.cpu_fraction":{"value":0.00020654574823802664},"system.process.memory.size":{"value":1.265524736e+09},"system.process.memory.rss.bytes":{"value":2.8135424e+07},"golang.heap.allocations.mallocs":{"value":2.408047e+06},"golang.heap.allocations.idle":{"value":5.595136e+06},"golang.heap.system.released":{"value":2.351104e+06},"golang.heap.gc.next_gc_limit":{"value":1.2713904e+07},"golang.heap.gc.total_count":{"value":33}},"timestamp":1646055642780911}} -{"metadata":{"system":{"architecture":"arm64","hostname":"3ff988a6070f","platform":"linux"},"process":{"pid":1,"argv":["/opbeans-go","-log-json","-log-level=debug","-listen=:3000","-frontend=/opbeans-frontend","-db=postgres:","-cache=redis://redis:6379"],"ppid":0,"title":"opbeans-go"},"service":{"agent":{"name":"go","version":"2.0.0"},"environment":"production","language":{"name":"go","version":"go1.17.7"},"name":"opbeans-go","runtime":{"name":"gc","version":"go1.17.7"},"version":"None"}}} {"span":{"duration":2.580958,"id":"3dba306d6ffd764b","name":"SELECT FROM products","timestamp":1646055643133465,"trace_id":"d8638bdc3692269ba0cac81eda24ad98","type":"db","action":"query","context":{"db":{"statement":"SELECT\n\t id, sku, name, stock, SUM(order_lines.amount) AS sold\nFROM products JOIN order_lines ON id=product_id GROUP BY products.id ORDER BY sold DESC\nLIMIT 3\n","type":"sql","user":"postgres"},"destination":{"address":"postgres","port":5432,"service":{"name":"postgresql","resource":"postgresql","type":"db"}}},"outcome":"success","parent_id":"6d05355d6b995cc8","sample_rate":1,"stacktrace":[],"subtype":"postgresql","transaction_id":"6d05355d6b995cc8"}} {"transaction":{"duration":2.750917,"id":"6d05355d6b995cc8","name":"GET /api/products/:id","span_count":{"dropped":0,"started":1},"timestamp":1646055643133441,"trace_id":"d8638bdc3692269ba0cac81eda24ad98","type":"request","context":{"request":{"method":"GET","url":{"hostname":"opbeans-go","pathname":"/api/products/top","port":"3000","protocol":"http","full":"http://opbeans-go:3000/api/products/top"},"headers":{"Connection":"close","Traceparent":"00-d8638bdc3692269ba0cac81eda24ad98-4e76db0c50e37b8c-01","Tracestate":"es=s:1","Elastic-Apm-Traceparent":"00-d8638bdc3692269ba0cac81eda24ad98-4e76db0c50e37b8c-01"},"http_version":"1.1","socket":{"remote_address":"172.23.0.10"}},"response":{"headers":{"Content-Type":"application/json; charset=utf-8"},"status_code":200},"service":{"framework":{"name":"gin","version":"v1.7.7"}}},"outcome":"success","parent_id":"4e76db0c50e37b8c","result":"HTTP 2xx","sample_rate":1}} {"span":{"duration":116.12675,"id":"e3576fe3cb90daaf","name":"Request","timestamp":1646055645208021,"trace_id":"eaf8a23f1bffff519347f2967f2e2804","type":"external","action":"request","outcome":"success","parent_id":"db66854cec6b74ac","sample_rate":1,"stacktrace":[{"filename":"span.go","lineno":368,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/v2@v2.0.0-20220125052152-dbce0fc5646c/span.go","function":"(*Span).End","library_frame":true,"module":"go.elastic.co/apm/v2"},{"filename":"clienttrace.go","lineno":130,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/clienttrace.go","function":"withClientTrace.func8","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"transport.go","lineno":2272,"abs_path":"/usr/local/go/src/net/http/transport.go","function":"(*persistConn).readResponse","library_frame":true,"module":"net/http"},{"filename":"transport.go","lineno":2102,"abs_path":"/usr/local/go/src/net/http/transport.go","function":"(*persistConn).readLoop","library_frame":true,"module":"net/http"},{"filename":"asm_arm64.s","lineno":1133,"abs_path":"/usr/local/go/src/runtime/asm_arm64.s","function":"goexit","library_frame":true,"module":"runtime"}],"subtype":"http","transaction_id":"eaf8a23f1bffff51"}} @@ -4266,7 +4245,6 @@ {"span":{"duration":1.6355,"id":"69c1eddc0830a740","name":"SELECT FROM products","timestamp":1646055651351687,"trace_id":"4f94c26dc957e7f52b565b364df6f0cf","type":"db","action":"query","context":{"db":{"statement":"SELECT\n\t id, sku, name, stock, SUM(order_lines.amount) AS sold\nFROM products JOIN order_lines ON id=product_id GROUP BY products.id ORDER BY sold DESC\nLIMIT 3\n","type":"sql","user":"postgres"},"destination":{"address":"postgres","port":5432,"service":{"name":"postgresql","resource":"postgresql","type":"db"}}},"outcome":"success","parent_id":"11f6ca2cc13a4ea9","sample_rate":1,"stacktrace":[],"subtype":"postgresql","transaction_id":"11f6ca2cc13a4ea9"}} {"transaction":{"duration":1.804541,"id":"11f6ca2cc13a4ea9","name":"GET /api/products/:id","span_count":{"dropped":0,"started":1},"timestamp":1646055651351664,"trace_id":"4f94c26dc957e7f52b565b364df6f0cf","type":"request","context":{"request":{"method":"GET","url":{"hostname":"opbeans-go","pathname":"/api/products/top","port":"3000","protocol":"http","full":"http://opbeans-go:3000/api/products/top"},"headers":{"User-Agent":"python-requests/2.27.1","Accept-Encoding":"gzip, deflate","Accept":"*/*","Connection":"keep-alive","Traceparent":"00-4f94c26dc957e7f52b565b364df6f0cf-92a3c27381cd4b6f-01","Elastic-Apm-Traceparent":"00-4f94c26dc957e7f52b565b364df6f0cf-92a3c27381cd4b6f-01","Tracestate":"es=s:1.0"},"http_version":"1.1","socket":{"remote_address":"172.23.0.11"}},"response":{"headers":{"Content-Type":"application/json; charset=utf-8"},"status_code":200},"service":{"framework":{"name":"gin","version":"v1.7.7"}}},"outcome":"success","parent_id":"92a3c27381cd4b6f","result":"HTTP 2xx","sample_rate":1}} {"transaction":{"duration":0.6443329999999999,"id":"52f0c85cc8c37be3","name":"GET /api/stats","span_count":{"dropped":0,"started":0},"timestamp":1646055651459684,"trace_id":"179fa11706685b54f121f16105133ef4","type":"request","context":{"request":{"method":"GET","url":{"hostname":"opbeans-go","pathname":"/api/stats","port":"3000","protocol":"http","full":"http://opbeans-go:3000/api/stats"},"headers":{"User-Agent":"python-requests/2.27.1","Accept-Encoding":"gzip, deflate","Accept":"*/*","Connection":"keep-alive","Traceparent":"00-179fa11706685b54f121f16105133ef4-9bc8928afaf9b8a1-01","Elastic-Apm-Traceparent":"00-179fa11706685b54f121f16105133ef4-9bc8928afaf9b8a1-01","Tracestate":"es=s:1.0"},"http_version":"1.1","socket":{"remote_address":"172.23.0.11"}},"response":{"headers":{"Content-Type":"application/json; charset=utf-8"},"status_code":200},"service":{"framework":{"name":"gin","version":"v1.7.7"}},"tags":{"served_from_cache":"true"}},"outcome":"success","parent_id":"9bc8928afaf9b8a1","result":"HTTP 2xx","sample_rate":1}} -{"metadata":{"system":{"architecture":"arm64","hostname":"3ff988a6070f","platform":"linux"},"process":{"pid":1,"argv":["/opbeans-go","-log-json","-log-level=debug","-listen=:3000","-frontend=/opbeans-frontend","-db=postgres:","-cache=redis://redis:6379"],"ppid":0,"title":"opbeans-go"},"service":{"agent":{"name":"go","version":"2.0.0"},"environment":"production","language":{"name":"go","version":"go1.17.7"},"name":"opbeans-go","runtime":{"name":"gc","version":"go1.17.7"},"version":"None"}}} {"span":{"duration":6402.638128,"id":"930e1587ad0a2c2c","name":"Request","timestamp":1646055648364330,"trace_id":"9d9fcfd70650c874742272aef69fff59","type":"external","action":"request","outcome":"success","parent_id":"c3ece61b7b5d6a6d","sample_rate":1,"stacktrace":[{"filename":"span.go","lineno":368,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/v2@v2.0.0-20220125052152-dbce0fc5646c/span.go","function":"(*Span).End","library_frame":true,"module":"go.elastic.co/apm/v2"},{"filename":"clienttrace.go","lineno":130,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/clienttrace.go","function":"withClientTrace.func8","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"transport.go","lineno":2272,"abs_path":"/usr/local/go/src/net/http/transport.go","function":"(*persistConn).readResponse","library_frame":true,"module":"net/http"},{"filename":"transport.go","lineno":2102,"abs_path":"/usr/local/go/src/net/http/transport.go","function":"(*persistConn).readLoop","library_frame":true,"module":"net/http"},{"filename":"asm_arm64.s","lineno":1133,"abs_path":"/usr/local/go/src/runtime/asm_arm64.s","function":"goexit","library_frame":true,"module":"runtime"}],"subtype":"http","transaction_id":"a975702a07a09384"}} {"span":{"duration":5.919417,"id":"a2bbe924364cd8c7","name":"Response","timestamp":1646055654767132,"trace_id":"9d9fcfd70650c874742272aef69fff59","type":"external","action":"response","outcome":"success","parent_id":"c3ece61b7b5d6a6d","sample_rate":1,"stacktrace":[{"filename":"span.go","lineno":368,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/v2@v2.0.0-20220125052152-dbce0fc5646c/span.go","function":"(*Span).End","library_frame":true,"module":"go.elastic.co/apm/v2"},{"filename":"clienttrace.go","lineno":144,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/clienttrace.go","function":"(*requestTracer).end","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"client.go","lineno":196,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/client.go","function":"(*responseBody).endSpan","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"client.go","lineno":187,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/client.go","function":"(*responseBody).Read","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"reverseproxy.go","lineno":461,"abs_path":"/usr/local/go/src/net/http/httputil/reverseproxy.go","function":"(*ReverseProxy).copyBuffer","library_frame":true,"module":"net/http/httputil"},{"filename":"reverseproxy.go","lineno":449,"abs_path":"/usr/local/go/src/net/http/httputil/reverseproxy.go","function":"(*ReverseProxy).copyResponse","library_frame":true,"module":"net/http/httputil"},{"filename":"reverseproxy.go","lineno":338,"abs_path":"/usr/local/go/src/net/http/httputil/reverseproxy.go","function":"(*ReverseProxy).ServeHTTP","library_frame":true,"module":"net/http/httputil"},{"filename":"main.go","lineno":196,"abs_path":"/src/opbeans-go/main.go","function":"Main.func2","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"main.go","lineno":174,"abs_path":"/src/opbeans-go/main.go","function":"Main.func1","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"logger.go","lineno":36,"abs_path":"/src/opbeans-go/logger.go","function":"logrusMiddleware","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"middleware.go","lineno":104,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmgin/v2@v2.0.0-20220125052152-dbce0fc5646c/middleware.go","function":"(*middleware).handle","library_frame":true,"module":"go.elastic.co/apm/module/apmgin/v2"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"cache.go","lineno":128,"abs_path":"/go/pkg/mod/github.com/gin-contrib/cache@v1.1.0/cache.go","function":"Cache.func1","library_frame":true,"module":"github.com/gin-contrib/cache"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"gin.go","lineno":555,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/gin.go","function":"(*Engine).handleHTTPRequest","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"gin.go","lineno":511,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/gin.go","function":"(*Engine).ServeHTTP","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"server.go","lineno":2879,"abs_path":"/usr/local/go/src/net/http/server.go","function":"serverHandler.ServeHTTP","library_frame":true,"module":"net/http"},{"filename":"server.go","lineno":1930,"abs_path":"/usr/local/go/src/net/http/server.go","function":"(*conn).serve","library_frame":true,"module":"net/http"},{"filename":"asm_arm64.s","lineno":1133,"abs_path":"/usr/local/go/src/runtime/asm_arm64.s","function":"goexit","library_frame":true,"module":"runtime"}],"subtype":"http","transaction_id":"a975702a07a09384"}} {"span":{"duration":6409.4011279999995,"id":"c3ece61b7b5d6a6d","name":"GET opbeans-node:3000","timestamp":1646055648363734,"trace_id":"9d9fcfd70650c874742272aef69fff59","type":"external","context":{"destination":{"address":"opbeans-node","port":3000,"service":{"name":"http://opbeans-node:3000","resource":"opbeans-node:3000","type":"external"}},"http":{"url":"http://opbeans-node:3000/api/orders","status_code":200}},"outcome":"success","parent_id":"a975702a07a09384","sample_rate":1,"stacktrace":[{"filename":"span.go","lineno":368,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/v2@v2.0.0-20220125052152-dbce0fc5646c/span.go","function":"(*Span).End","library_frame":true,"module":"go.elastic.co/apm/v2"},{"filename":"client.go","lineno":198,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/client.go","function":"(*responseBody).endSpan","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"client.go","lineno":187,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/client.go","function":"(*responseBody).Read","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"reverseproxy.go","lineno":461,"abs_path":"/usr/local/go/src/net/http/httputil/reverseproxy.go","function":"(*ReverseProxy).copyBuffer","library_frame":true,"module":"net/http/httputil"},{"filename":"reverseproxy.go","lineno":449,"abs_path":"/usr/local/go/src/net/http/httputil/reverseproxy.go","function":"(*ReverseProxy).copyResponse","library_frame":true,"module":"net/http/httputil"},{"filename":"reverseproxy.go","lineno":338,"abs_path":"/usr/local/go/src/net/http/httputil/reverseproxy.go","function":"(*ReverseProxy).ServeHTTP","library_frame":true,"module":"net/http/httputil"},{"filename":"main.go","lineno":196,"abs_path":"/src/opbeans-go/main.go","function":"Main.func2","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"main.go","lineno":174,"abs_path":"/src/opbeans-go/main.go","function":"Main.func1","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"logger.go","lineno":36,"abs_path":"/src/opbeans-go/logger.go","function":"logrusMiddleware","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"middleware.go","lineno":104,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmgin/v2@v2.0.0-20220125052152-dbce0fc5646c/middleware.go","function":"(*middleware).handle","library_frame":true,"module":"go.elastic.co/apm/module/apmgin/v2"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"cache.go","lineno":128,"abs_path":"/go/pkg/mod/github.com/gin-contrib/cache@v1.1.0/cache.go","function":"Cache.func1","library_frame":true,"module":"github.com/gin-contrib/cache"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"gin.go","lineno":555,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/gin.go","function":"(*Engine).handleHTTPRequest","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"gin.go","lineno":511,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/gin.go","function":"(*Engine).ServeHTTP","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"server.go","lineno":2879,"abs_path":"/usr/local/go/src/net/http/server.go","function":"serverHandler.ServeHTTP","library_frame":true,"module":"net/http"},{"filename":"server.go","lineno":1930,"abs_path":"/usr/local/go/src/net/http/server.go","function":"(*conn).serve","library_frame":true,"module":"net/http"},{"filename":"asm_arm64.s","lineno":1133,"abs_path":"/usr/local/go/src/runtime/asm_arm64.s","function":"goexit","library_frame":true,"module":"runtime"}],"subtype":"http","transaction_id":"a975702a07a09384"}} @@ -4470,7 +4448,6 @@ {"transaction":{"duration":0.648667,"id":"54486c29d655ebaa","name":"GET /api/types","span_count":{"dropped":0,"started":1},"timestamp":1646055664450746,"trace_id":"8368784496104433ad682a1c0b3e1804","type":"request","context":{"request":{"method":"GET","url":{"hostname":"opbeans-go","pathname":"/api/types","port":"3000","protocol":"http","full":"http://opbeans-go:3000/api/types"},"headers":{"Tracestate":"es=s:1.0","Elastic-Apm-Traceparent":"00-8368784496104433ad682a1c0b3e1804-9a26dfa77031fda3-01","Connection":"close","User-Agent":"http.rb/5.0.4","Traceparent":"00-8368784496104433ad682a1c0b3e1804-9a26dfa77031fda3-01"},"http_version":"1.1","socket":{"remote_address":"172.23.0.12"}},"response":{"headers":{"Content-Type":"application/json; charset=utf-8"},"status_code":200},"service":{"framework":{"name":"gin","version":"v1.7.7"}}},"outcome":"success","parent_id":"9a26dfa77031fda3","result":"HTTP 2xx","sample_rate":1}} {"span":{"duration":0.39520799999999995,"id":"78ba20ca60c805aa","name":"SELECT FROM customers","timestamp":1646055664614889,"trace_id":"c6537f1c45d7096754713620813bb992","type":"db","action":"query","context":{"db":{"statement":"\nSELECT\n customers.id, full_name, company_name, email,\n address, postal_code, city, country\nFROM customers\n","type":"sql","user":"postgres"},"destination":{"address":"postgres","port":5432,"service":{"name":"postgresql","resource":"postgresql","type":"db"}}},"outcome":"success","parent_id":"a476386cbd6e405d","sample_rate":1,"stacktrace":[],"subtype":"postgresql","transaction_id":"a476386cbd6e405d"}} {"transaction":{"duration":2.340458,"id":"a476386cbd6e405d","name":"GET /api/customers","span_count":{"dropped":0,"started":1},"timestamp":1646055664614873,"trace_id":"c6537f1c45d7096754713620813bb992","type":"request","context":{"request":{"method":"GET","url":{"hostname":"opbeans-go","pathname":"/api/customers","port":"3000","protocol":"http","full":"http://opbeans-go:3000/api/customers"},"headers":{"Traceparent":"00-c6537f1c45d7096754713620813bb992-89353844aa63a422-01","Tracestate":"es=s:1.0","Elastic-Apm-Traceparent":"00-c6537f1c45d7096754713620813bb992-89353844aa63a422-01","Connection":"close"},"http_version":"1.1","socket":{"remote_address":"172.23.0.10"}},"response":{"headers":{"Content-Type":"application/json; charset=utf-8"},"status_code":200},"service":{"framework":{"name":"gin","version":"v1.7.7"}}},"outcome":"success","parent_id":"89353844aa63a422","result":"HTTP 2xx","sample_rate":1}} -{"metadata":{"system":{"architecture":"arm64","hostname":"3ff988a6070f","platform":"linux"},"process":{"pid":1,"argv":["/opbeans-go","-log-json","-log-level=debug","-listen=:3000","-frontend=/opbeans-frontend","-db=postgres:","-cache=redis://redis:6379"],"ppid":0,"title":"opbeans-go"},"service":{"agent":{"name":"go","version":"2.0.0"},"environment":"production","language":{"name":"go","version":"go1.17.7"},"name":"opbeans-go","runtime":{"name":"gc","version":"go1.17.7"},"version":"None"}}} {"span":{"duration":0.488167,"id":"aaaef4a8b4d9ea71","name":"SELECT FROM orders","timestamp":1646055664855267,"trace_id":"cea58e34c506426122a208b9e9359b21","type":"db","action":"query","context":{"db":{"statement":"SELECT\n orders.id, orders.created_at,\n customers.id, customers.full_name\nFROM orders JOIN customers ON orders.customer_id=customers.id\nLIMIT 1000\n","type":"sql","user":"postgres"},"destination":{"address":"postgres","port":5432,"service":{"name":"postgresql","resource":"postgresql","type":"db"}}},"outcome":"success","parent_id":"51580377624f434a","sample_rate":1,"stacktrace":[],"subtype":"postgresql","transaction_id":"51580377624f434a"}} {"transaction":{"duration":3.276708,"id":"51580377624f434a","name":"GET /api/orders","span_count":{"dropped":0,"started":1},"timestamp":1646055664855252,"trace_id":"cea58e34c506426122a208b9e9359b21","type":"request","context":{"request":{"method":"GET","url":{"hostname":"opbeans-go","pathname":"/api/orders","port":"3000","protocol":"http","full":"http://opbeans-go:3000/api/orders"},"headers":{"Tracestate":"es=s:1.0","Elastic-Apm-Traceparent":"00-cea58e34c506426122a208b9e9359b21-507c8cf138639347-01","Connection":"close","User-Agent":"http.rb/5.0.4","Traceparent":"00-cea58e34c506426122a208b9e9359b21-507c8cf138639347-01"},"http_version":"1.1","socket":{"remote_address":"172.23.0.12"}},"response":{"headers":{"Content-Type":"application/json; charset=utf-8"},"status_code":200},"service":{"framework":{"name":"gin","version":"v1.7.7"}}},"outcome":"success","parent_id":"507c8cf138639347","result":"HTTP 2xx","sample_rate":1}} {"span":{"duration":0.321791,"id":"517205248d43a34e","name":"SELECT FROM products","timestamp":1646055665014463,"trace_id":"c3564c1bb42aa376684f66cdcd2d8098","type":"db","action":"query","context":{"db":{"statement":"SELECT\n products.id, products.sku, products.name, products.description,\n products.stock, products.cost, products.selling_price,\n products.type_id, product_types.name\nFROM products JOIN product_types ON type_id=product_types.id\nWHERE products.id=$1\n","type":"sql","user":"postgres"},"destination":{"address":"postgres","port":5432,"service":{"name":"postgresql","resource":"postgresql","type":"db"}}},"outcome":"success","parent_id":"d6eb66f015649376","sample_rate":1,"stacktrace":[],"subtype":"postgresql","transaction_id":"d6eb66f015649376"}} @@ -4952,7 +4929,6 @@ {"span":{"duration":0.059417,"id":"9638c4fe73f1e5ca","name":"Response","timestamp":1646055674798937,"trace_id":"0455e2ebd391c80c3685cc462ba0a05d","type":"external","action":"response","outcome":"success","parent_id":"394e32d46f746e41","sample_rate":1,"stacktrace":[],"subtype":"http","transaction_id":"c63884685f69ba39"}} {"span":{"duration":56.548500000000004,"id":"394e32d46f746e41","name":"GET opbeans-node:3000","timestamp":1646055674742448,"trace_id":"0455e2ebd391c80c3685cc462ba0a05d","type":"external","context":{"destination":{"address":"opbeans-node","port":3000,"service":{"name":"http://opbeans-node:3000","resource":"opbeans-node:3000","type":"external"}},"http":{"url":"http://opbeans-node:3000/api/types/2","status_code":200}},"outcome":"success","parent_id":"c63884685f69ba39","sample_rate":1,"stacktrace":[{"filename":"span.go","lineno":368,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/v2@v2.0.0-20220125052152-dbce0fc5646c/span.go","function":"(*Span).End","library_frame":true,"module":"go.elastic.co/apm/v2"},{"filename":"client.go","lineno":198,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/client.go","function":"(*responseBody).endSpan","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"client.go","lineno":187,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/client.go","function":"(*responseBody).Read","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"reverseproxy.go","lineno":461,"abs_path":"/usr/local/go/src/net/http/httputil/reverseproxy.go","function":"(*ReverseProxy).copyBuffer","library_frame":true,"module":"net/http/httputil"},{"filename":"reverseproxy.go","lineno":449,"abs_path":"/usr/local/go/src/net/http/httputil/reverseproxy.go","function":"(*ReverseProxy).copyResponse","library_frame":true,"module":"net/http/httputil"},{"filename":"reverseproxy.go","lineno":338,"abs_path":"/usr/local/go/src/net/http/httputil/reverseproxy.go","function":"(*ReverseProxy).ServeHTTP","library_frame":true,"module":"net/http/httputil"},{"filename":"main.go","lineno":196,"abs_path":"/src/opbeans-go/main.go","function":"Main.func2","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"main.go","lineno":174,"abs_path":"/src/opbeans-go/main.go","function":"Main.func1","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"logger.go","lineno":36,"abs_path":"/src/opbeans-go/logger.go","function":"logrusMiddleware","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"middleware.go","lineno":104,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmgin/v2@v2.0.0-20220125052152-dbce0fc5646c/middleware.go","function":"(*middleware).handle","library_frame":true,"module":"go.elastic.co/apm/module/apmgin/v2"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"cache.go","lineno":128,"abs_path":"/go/pkg/mod/github.com/gin-contrib/cache@v1.1.0/cache.go","function":"Cache.func1","library_frame":true,"module":"github.com/gin-contrib/cache"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"gin.go","lineno":555,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/gin.go","function":"(*Engine).handleHTTPRequest","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"gin.go","lineno":511,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/gin.go","function":"(*Engine).ServeHTTP","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"server.go","lineno":2879,"abs_path":"/usr/local/go/src/net/http/server.go","function":"serverHandler.ServeHTTP","library_frame":true,"module":"net/http"},{"filename":"server.go","lineno":1930,"abs_path":"/usr/local/go/src/net/http/server.go","function":"(*conn).serve","library_frame":true,"module":"net/http"},{"filename":"asm_arm64.s","lineno":1133,"abs_path":"/usr/local/go/src/runtime/asm_arm64.s","function":"goexit","library_frame":true,"module":"runtime"}],"subtype":"http","transaction_id":"c63884685f69ba39"}} {"transaction":{"duration":56.959375,"id":"c63884685f69ba39","name":"GET /api/types/:id","span_count":{"dropped":0,"started":5},"timestamp":1646055674742327,"trace_id":"0455e2ebd391c80c3685cc462ba0a05d","type":"request","context":{"request":{"method":"GET","url":{"hostname":"opbeans-go","pathname":"/api/types/2","port":"3000","protocol":"http","full":"http://opbeans-go:3000/api/types/2"},"headers":{"Connection":"close","Traceparent":"00-0455e2ebd391c80c3685cc462ba0a05d-81e33f0a5cd98fcc-01","Tracestate":"es=s:1","Elastic-Apm-Traceparent":"00-0455e2ebd391c80c3685cc462ba0a05d-81e33f0a5cd98fcc-01"},"http_version":"1.1","socket":{"remote_address":"172.23.0.10"}},"response":{"headers":{"Etag":"W/\"cd-pFMi1QOVY6YqWe+nwcbZVviCths\"","Date":"Mon, 28 Feb 2022 13:41:14 GMT","X-Powered-By":"Express","Content-Type":"application/json; charset=utf-8","Content-Length":"205"},"status_code":200},"service":{"framework":{"name":"gin","version":"v1.7.7"}}},"outcome":"success","parent_id":"81e33f0a5cd98fcc","result":"HTTP 2xx","sample_rate":1}} -{"metadata":{"system":{"architecture":"arm64","hostname":"3ff988a6070f","platform":"linux"},"process":{"pid":1,"argv":["/opbeans-go","-log-json","-log-level=debug","-listen=:3000","-frontend=/opbeans-frontend","-db=postgres:","-cache=redis://redis:6379"],"ppid":0,"title":"opbeans-go"},"service":{"agent":{"name":"go","version":"2.0.0"},"environment":"production","language":{"name":"go","version":"go1.17.7"},"name":"opbeans-go","runtime":{"name":"gc","version":"go1.17.7"},"version":"None"}}} {"span":{"duration":220.963917,"id":"0a157c20fe1f07b5","name":"Request","timestamp":1646055674733240,"trace_id":"011cb4fbb9e9b4b5728ded4349d253f0","type":"external","action":"request","outcome":"success","parent_id":"61ca0cdf8bc33dea","sample_rate":1,"stacktrace":[{"filename":"span.go","lineno":368,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/v2@v2.0.0-20220125052152-dbce0fc5646c/span.go","function":"(*Span).End","library_frame":true,"module":"go.elastic.co/apm/v2"},{"filename":"clienttrace.go","lineno":130,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/clienttrace.go","function":"withClientTrace.func8","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"transport.go","lineno":2272,"abs_path":"/usr/local/go/src/net/http/transport.go","function":"(*persistConn).readResponse","library_frame":true,"module":"net/http"},{"filename":"transport.go","lineno":2102,"abs_path":"/usr/local/go/src/net/http/transport.go","function":"(*persistConn).readLoop","library_frame":true,"module":"net/http"},{"filename":"asm_arm64.s","lineno":1133,"abs_path":"/usr/local/go/src/runtime/asm_arm64.s","function":"goexit","library_frame":true,"module":"runtime"}],"subtype":"http","transaction_id":"011cb4fbb9e9b4b5"}} {"span":{"duration":0.408333,"id":"b2a9b3430fdd2cac","name":"Response","timestamp":1646055674954290,"trace_id":"011cb4fbb9e9b4b5728ded4349d253f0","type":"external","action":"response","outcome":"success","parent_id":"61ca0cdf8bc33dea","sample_rate":1,"stacktrace":[],"subtype":"http","transaction_id":"011cb4fbb9e9b4b5"}} {"span":{"duration":222.014542,"id":"61ca0cdf8bc33dea","name":"POST opbeans-node:3000","timestamp":1646055674732685,"trace_id":"011cb4fbb9e9b4b5728ded4349d253f0","type":"external","context":{"destination":{"address":"opbeans-node","port":3000,"service":{"name":"http://opbeans-node:3000","resource":"opbeans-node:3000","type":"external"}},"http":{"url":"http://opbeans-node:3000/api/orders/csv","status_code":500}},"outcome":"failure","parent_id":"011cb4fbb9e9b4b5","sample_rate":1,"stacktrace":[{"filename":"span.go","lineno":368,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/v2@v2.0.0-20220125052152-dbce0fc5646c/span.go","function":"(*Span).End","library_frame":true,"module":"go.elastic.co/apm/v2"},{"filename":"client.go","lineno":198,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/client.go","function":"(*responseBody).endSpan","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"client.go","lineno":187,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmhttp/v2@v2.0.0-20220125052152-dbce0fc5646c/client.go","function":"(*responseBody).Read","library_frame":true,"module":"go.elastic.co/apm/module/apmhttp/v2"},{"filename":"reverseproxy.go","lineno":461,"abs_path":"/usr/local/go/src/net/http/httputil/reverseproxy.go","function":"(*ReverseProxy).copyBuffer","library_frame":true,"module":"net/http/httputil"},{"filename":"reverseproxy.go","lineno":449,"abs_path":"/usr/local/go/src/net/http/httputil/reverseproxy.go","function":"(*ReverseProxy).copyResponse","library_frame":true,"module":"net/http/httputil"},{"filename":"reverseproxy.go","lineno":338,"abs_path":"/usr/local/go/src/net/http/httputil/reverseproxy.go","function":"(*ReverseProxy).ServeHTTP","library_frame":true,"module":"net/http/httputil"},{"filename":"main.go","lineno":196,"abs_path":"/src/opbeans-go/main.go","function":"Main.func2","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"main.go","lineno":174,"abs_path":"/src/opbeans-go/main.go","function":"Main.func1","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"logger.go","lineno":36,"abs_path":"/src/opbeans-go/logger.go","function":"logrusMiddleware","module":"main"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"middleware.go","lineno":104,"abs_path":"/go/pkg/mod/github.com/elastic/apm-agent-go/module/apmgin/v2@v2.0.0-20220125052152-dbce0fc5646c/middleware.go","function":"(*middleware).handle","library_frame":true,"module":"go.elastic.co/apm/module/apmgin/v2"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"cache.go","lineno":128,"abs_path":"/go/pkg/mod/github.com/gin-contrib/cache@v1.1.0/cache.go","function":"Cache.func1","library_frame":true,"module":"github.com/gin-contrib/cache"},{"filename":"context.go","lineno":168,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/context.go","function":"(*Context).Next","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"gin.go","lineno":555,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/gin.go","function":"(*Engine).handleHTTPRequest","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"gin.go","lineno":511,"abs_path":"/go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/gin.go","function":"(*Engine).ServeHTTP","library_frame":true,"module":"github.com/gin-gonic/gin"},{"filename":"server.go","lineno":2879,"abs_path":"/usr/local/go/src/net/http/server.go","function":"serverHandler.ServeHTTP","library_frame":true,"module":"net/http"},{"filename":"server.go","lineno":1930,"abs_path":"/usr/local/go/src/net/http/server.go","function":"(*conn).serve","library_frame":true,"module":"net/http"},{"filename":"asm_arm64.s","lineno":1133,"abs_path":"/usr/local/go/src/runtime/asm_arm64.s","function":"goexit","library_frame":true,"module":"runtime"}],"subtype":"http","transaction_id":"011cb4fbb9e9b4b5"}} diff --git a/internal/loadgen/events/nodejs-3.29.0.ndjson b/internal/loadgen/events/nodejs-3.29.0.ndjson index 3c6fc5a..1d95440 100644 --- a/internal/loadgen/events/nodejs-3.29.0.ndjson +++ b/internal/loadgen/events/nodejs-3.29.0.ndjson @@ -1,17 +1,14 @@ {"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"version":"1.0.0"},"process":{"pid":34,"ppid":1,"title":"node /app/node_modules/.bin/workload","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js","-f",".workload.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"metricset":{"samples":{"system.cpu.total.norm.pct":{"value":0.9705882352941176},"system.memory.actual.free":{"value":8507039744},"system.memory.total":{"value":12544401408},"system.process.cpu.total.norm.pct":{"value":0},"system.process.cpu.system.norm.pct":{"value":0},"system.process.cpu.user.norm.pct":{"value":0},"system.process.memory.size":{"value":0},"system.process.memory.rss.bytes":{"value":0},"nodejs.handles.active":{"value":7},"nodejs.requests.active":{"value":10},"nodejs.eventloop.delay.avg.ms":{"value":0},"nodejs.memory.heap.allocated.bytes":{"value":33722368},"nodejs.memory.heap.used.bytes":{"value":15575456},"nodejs.memory.external.bytes":{"value":1936552},"nodejs.memory.arrayBuffers.bytes":{"value":227760}},"timestamp":1646055413918000,"tags":{"hostname":"698fd446b62a","env":"production"}}} {"error":{"id":"72075ebdefc1e84c0b5e15e43bec847c","timestamp":1646055414366000,"context":{"user":{},"tags":{},"custom":{}},"exception":{"message":"connect ECONNREFUSED 172.23.0.10:3000","type":"Error","handled":false,"code":"ECONNREFUSED","attributes":{"errno":-111,"syscall":"connect","address":"172.23.0.10","port":3000},"stacktrace":[{"filename":"net.js","lineno":1159,"function":"afterConnect","library_frame":true,"abs_path":"net.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}]},"culprit":"afterConnect (net.js)"}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"framework":{"name":"express","version":"4.17.3"},"version":"1.0.0"},"process":{"pid":31,"ppid":1,"title":"node /app/server.js","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"metricset":{"samples":{"system.cpu.total.norm.pct":{"value":0.9462840323767476},"system.memory.actual.free":{"value":8628539392},"system.memory.total":{"value":12544401408},"system.process.cpu.total.norm.pct":{"value":0},"system.process.cpu.system.norm.pct":{"value":0},"system.process.cpu.user.norm.pct":{"value":0},"system.process.memory.size":{"value":0},"system.process.memory.rss.bytes":{"value":0},"nodejs.handles.active":{"value":8},"nodejs.requests.active":{"value":11},"nodejs.eventloop.delay.avg.ms":{"value":0},"nodejs.memory.heap.allocated.bytes":{"value":55214080},"nodejs.memory.heap.used.bytes":{"value":28782352},"nodejs.memory.external.bytes":{"value":2516032},"nodejs.memory.arrayBuffers.bytes":{"value":800225}},"timestamp":1646055415504000,"tags":{"hostname":"698fd446b62a","env":"production"}}} {"transaction":{"name":"GET /api","type":"request","result":"HTTP 2xx","id":"0ade42c6ef3d5617","trace_id":"22ce49b1aad6131ea366ce3ad6176d84","duration":203.095,"timestamp":1646055421489327,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/products/top","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/api/products/top","full":"http://opbeans-node:3000/api/products/top"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"application/json; charset=utf-8","date":"Mon, 28 Feb 2022 13:37:01 GMT","content-length":"401","connection":"close"}}},"span_count":{"started":1},"outcome":"success","sample_rate":1}} {"span":{"name":"GET opbeans-go:3000","type":"external","id":"fe964d6345cba85a","transaction_id":"0ade42c6ef3d5617","parent_id":"0ade42c6ef3d5617","trace_id":"22ce49b1aad6131ea366ce3ad6176d84","subtype":"http","action":"GET","timestamp":1646055421561690,"duration":95.946,"context":{"http":{"method":"GET","status_code":200,"url":"http://opbeans-go:3000/api/products/top"},"destination":{"service":{"name":"http://opbeans-go:3000","resource":"opbeans-go:3000","type":"external"},"address":"opbeans-go","port":3000}},"stacktrace":[{"filename":"server.js","lineno":101,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" req.log.debug('proxying request: %s => %s:%s', req.originalUrl, opts.hostname, opts.port + opts.path)",""],"context_line":" const clientReq = http.request(opts)","post_context":[""," clientReq.on('response', clientRes => {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":641,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":260,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js"},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}],"sync":false,"outcome":"success","sample_rate":1}} {"transaction":{"name":"GET /api","type":"request","result":"HTTP 5xx","id":"d5952ba2b485dc70","trace_id":"bd5afb176eb4cd16cb068b24d8e5c77c","duration":56.447,"timestamp":1646055421947125,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/products/2/customers","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/api/products/2/customers","full":"http://opbeans-node:3000/api/products/2/customers"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":502,"headers":{"x-powered-by":"Express","date":"Mon, 28 Feb 2022 13:37:01 GMT","content-length":"0","connection":"close"}}},"span_count":{"started":1},"outcome":"failure","sample_rate":1}} {"span":{"name":"GET opbeans-go:3000","type":"external","id":"111d7262ba8fd2bb","transaction_id":"d5952ba2b485dc70","parent_id":"d5952ba2b485dc70","trace_id":"bd5afb176eb4cd16cb068b24d8e5c77c","subtype":"http","action":"GET","timestamp":1646055421965163,"duration":29.61,"context":{"http":{"method":"GET","status_code":502,"url":"http://opbeans-go:3000/api/products/2/customers"},"destination":{"service":{"name":"http://opbeans-go:3000","resource":"opbeans-go:3000","type":"external"},"address":"opbeans-go","port":3000}},"stacktrace":[{"filename":"server.js","lineno":101,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" req.log.debug('proxying request: %s => %s:%s', req.originalUrl, opts.hostname, opts.port + opts.path)",""],"context_line":" const clientReq = http.request(opts)","post_context":[""," clientReq.on('response', clientRes => {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":641,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":260,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js"},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}],"sync":false,"outcome":"failure","sample_rate":1}} {"error":{"id":"d52f21bf56e117f923053c0891f3d4b6","timestamp":1646055422504000,"parent_id":"a075329489d858f9","trace_id":"4b311c36db919bedeb86cddfe1fbc74f","transaction_id":"b6e1fc47e370fcc7","transaction":{"name":"GET unknown route (unnamed)","type":"request","sampled":true},"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/products/2","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/api/products/2","full":"http://opbeans-node:3000/api/products/2"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{},"headers_sent":false,"finished":false}},"exception":{"message":"connect ECONNREFUSED 172.23.0.11:3000","type":"Error","handled":false,"code":"ECONNREFUSED","attributes":{"errno":-111,"syscall":"connect","address":"172.23.0.11","port":3000},"stacktrace":[{"filename":"net.js","lineno":1159,"function":"afterConnect","library_frame":true,"abs_path":"net.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}]},"culprit":"afterConnect (net.js)"}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"version":"1.0.0"},"process":{"pid":73,"ppid":1,"title":"node /app/node_modules/.bin/workload","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js","-f",".workload.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"metricset":{"samples":{"system.cpu.total.norm.pct":{"value":0.7906976744186046},"system.memory.actual.free":{"value":8529981440},"system.memory.total":{"value":12544401408},"system.process.cpu.total.norm.pct":{"value":0},"system.process.cpu.system.norm.pct":{"value":0},"system.process.cpu.user.norm.pct":{"value":0},"system.process.memory.size":{"value":0},"system.process.memory.rss.bytes":{"value":0},"nodejs.handles.active":{"value":7},"nodejs.requests.active":{"value":10},"nodejs.eventloop.delay.avg.ms":{"value":0},"nodejs.memory.heap.allocated.bytes":{"value":33460224},"nodejs.memory.heap.used.bytes":{"value":15770952},"nodejs.memory.external.bytes":{"value":1962260},"nodejs.memory.arrayBuffers.bytes":{"value":253468}},"timestamp":1646055420961000,"tags":{"hostname":"698fd446b62a","env":"production"}}} {"error":{"id":"20b4dc1d660e3fd7bb9c7a7114855a11","timestamp":1646055422669000,"context":{"user":{},"tags":{},"custom":{}},"exception":{"message":"socket hang up","type":"Error","handled":false,"code":"ECONNRESET","stacktrace":[{"filename":"internal/errors.js","lineno":639,"function":"connResetException","library_frame":true,"abs_path":"internal/errors.js"},{"filename":"_http_client.js","lineno":499,"function":"socketOnEnd","library_frame":true,"abs_path":"_http_client.js"},{"filename":"events.js","lineno":412,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"internal/streams/readable.js","lineno":1334,"function":"endReadableNT","library_frame":true,"abs_path":"internal/streams/readable.js"},{"filename":"internal/process/task_queues.js","lineno":82,"function":"processTicksAndRejections","library_frame":true,"abs_path":"internal/process/task_queues.js"}]},"culprit":"connResetException (internal/errors.js)"}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"framework":{"name":"express","version":"4.17.3"},"version":"1.0.0"},"process":{"pid":86,"ppid":1,"title":"node /app/server.js","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"metricset":{"samples":{"system.cpu.total.norm.pct":{"value":0.9954147561483951},"system.memory.actual.free":{"value":8280555520},"system.memory.total":{"value":12544401408},"system.process.cpu.total.norm.pct":{"value":0},"system.process.cpu.system.norm.pct":{"value":0},"system.process.cpu.user.norm.pct":{"value":0},"system.process.memory.size":{"value":0},"system.process.memory.rss.bytes":{"value":0},"nodejs.handles.active":{"value":8},"nodejs.requests.active":{"value":11},"nodejs.eventloop.delay.avg.ms":{"value":0},"nodejs.memory.heap.allocated.bytes":{"value":54956032},"nodejs.memory.heap.used.bytes":{"value":28621648},"nodejs.memory.external.bytes":{"value":2502043},"nodejs.memory.arrayBuffers.bytes":{"value":786236}},"timestamp":1646055434417000,"tags":{"hostname":"698fd446b62a","env":"production"}}} {"transaction":{"name":"OPTIONS unknown route","type":"request","result":"HTTP 2xx","id":"22da724dd0b9dd72","trace_id":"90fd060c6e54bc2ee7afc4535f7a0e01","duration":85.211,"timestamp":1646055435377800,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"OPTIONS","url":{"raw":"/","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/","full":"http://opbeans-node:3000/"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","content-length":"0","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","allow":"GET,HEAD","content-type":"text/html; charset=utf-8","content-length":"8","etag":"W/\"8-ZRAf8oNBS3Bjb/SU2GYZCmbtmXg\"","date":"Mon, 28 Feb 2022 13:37:15 GMT","connection":"close"}}},"span_count":{"started":0},"outcome":"success","sample_rate":1}} {"transaction":{"name":"GET /api/customers/:id","type":"request","result":"HTTP 2xx","id":"5dacf8e5be1b8225","trace_id":"d90ebf60dd2ed87a711aeb98ff329bfb","duration":158.99,"timestamp":1646055435840103,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/customers/691","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/api/customers/691","full":"http://opbeans-node:3000/api/customers/691"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"application/json; charset=utf-8","content-length":"179","etag":"W/\"b3-Gypk18rk6LM3zylHdedIaUqLLWw\"","date":"Mon, 28 Feb 2022 13:37:15 GMT","connection":"close"}}},"span_count":{"started":1},"outcome":"success","sample_rate":1}} @@ -35,10 +32,8 @@ {"span":{"name":"SELECT FROM products","type":"db","id":"539a8f16e244b57d","transaction_id":"10a295a228201b02","parent_id":"10a295a228201b02","trace_id":"9a7f1b3080ae43b00c2acc10f382d168","subtype":"postgresql","action":"query","timestamp":1646055438845772,"duration":8.726,"context":{"db":{"statement":"SELECT p.id, p.sku, p.name, p.stock, t.name AS type_name FROM products p LEFT JOIN product_types t ON p.type_id=t.id","type":"sql"},"destination":{"service":{"name":"postgresql","resource":"postgresql","type":"db"},"address":"postgres","port":5432}},"sync":false,"outcome":"success","sample_rate":1}} {"transaction":{"name":"GET /api/products","type":"request","result":"HTTP 2xx","id":"10a295a228201b02","trace_id":"9a7f1b3080ae43b00c2acc10f382d168","duration":54.536,"timestamp":1646055438822025,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/products","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/api/products","full":"http://opbeans-node:3000/api/products"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"application/json; charset=utf-8","content-length":"1023","etag":"W/\"3ff-VyOxcDApb+a/lnjkm9FeTOGSDrs\"","date":"Mon, 28 Feb 2022 13:37:18 GMT","connection":"close"}}},"span_count":{"started":2},"outcome":"success","sample_rate":1}} {"error":{"id":"170ee18c7bd1b198c7df86169203b05b","timestamp":1646055439430000,"parent_id":"9fd269bc183a4249","trace_id":"4cc404e96a6d25a824a56b2dc447b747","transaction_id":"1cd46534c3c2fe8c","transaction":{"name":"GET unknown route (unnamed)","type":"request","sampled":true},"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/products/top","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/api/products/top","full":"http://opbeans-node:3000/api/products/top"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{},"headers_sent":false,"finished":false}},"exception":{"message":"connect ECONNREFUSED 172.23.0.12:3000","type":"Error","handled":false,"code":"ECONNREFUSED","attributes":{"errno":-111,"syscall":"connect","address":"172.23.0.12","port":3000},"stacktrace":[{"filename":"net.js","lineno":1159,"function":"afterConnect","library_frame":true,"abs_path":"net.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}]},"culprit":"afterConnect (net.js)"}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"version":"1.0.0"},"process":{"pid":106,"ppid":1,"title":"node /app/node_modules/.bin/workload","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js","-f",".workload.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"metricset":{"samples":{"system.cpu.total.norm.pct":{"value":0.9577464788732394},"system.memory.actual.free":{"value":8364052480},"system.memory.total":{"value":12544401408},"system.process.cpu.total.norm.pct":{"value":0},"system.process.cpu.system.norm.pct":{"value":0},"system.process.cpu.user.norm.pct":{"value":0},"system.process.memory.size":{"value":0},"system.process.memory.rss.bytes":{"value":0},"nodejs.handles.active":{"value":7},"nodejs.requests.active":{"value":10},"nodejs.eventloop.delay.avg.ms":{"value":0},"nodejs.memory.heap.allocated.bytes":{"value":33460224},"nodejs.memory.heap.used.bytes":{"value":15753352},"nodejs.memory.external.bytes":{"value":1962260},"nodejs.memory.arrayBuffers.bytes":{"value":253468}},"timestamp":1646055434872000,"tags":{"hostname":"698fd446b62a","env":"production"}}} {"error":{"id":"8d0fa2516cf4a3190fd85ed2bcf23ddb","timestamp":1646055439790000,"context":{"user":{},"tags":{},"custom":{}},"exception":{"message":"socket hang up","type":"Error","handled":false,"code":"ECONNRESET","stacktrace":[{"filename":"internal/errors.js","lineno":639,"function":"connResetException","library_frame":true,"abs_path":"internal/errors.js"},{"filename":"_http_client.js","lineno":499,"function":"socketOnEnd","library_frame":true,"abs_path":"_http_client.js"},{"filename":"events.js","lineno":412,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"internal/streams/readable.js","lineno":1334,"function":"endReadableNT","library_frame":true,"abs_path":"internal/streams/readable.js"},{"filename":"internal/process/task_queues.js","lineno":82,"function":"processTicksAndRejections","library_frame":true,"abs_path":"internal/process/task_queues.js"}]},"culprit":"connResetException (internal/errors.js)"}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"framework":{"name":"express","version":"4.17.3"},"version":"1.0.0"},"process":{"pid":126,"ppid":1,"title":"node /app/server.js","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"metricset":{"samples":{"system.cpu.total.norm.pct":{"value":1},"system.memory.actual.free":{"value":7858868224},"system.memory.total":{"value":12544401408},"system.process.cpu.total.norm.pct":{"value":0},"system.process.cpu.system.norm.pct":{"value":0},"system.process.cpu.user.norm.pct":{"value":0},"system.process.memory.size":{"value":0},"system.process.memory.rss.bytes":{"value":0},"nodejs.handles.active":{"value":8},"nodejs.requests.active":{"value":11},"nodejs.eventloop.delay.avg.ms":{"value":0},"nodejs.memory.heap.allocated.bytes":{"value":55218176},"nodejs.memory.heap.used.bytes":{"value":28536464},"nodejs.memory.external.bytes":{"value":2502043},"nodejs.memory.arrayBuffers.bytes":{"value":786236}},"timestamp":1646055451329000,"tags":{"hostname":"698fd446b62a","env":"production"}}} {"transaction":{"name":"GET /api/products/:id/customers","type":"request","result":"HTTP 2xx","id":"c331471e5b550ba9","trace_id":"7b78db52eafdf997939207cb360802f1","duration":403.581,"timestamp":1646055452386833,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/products/5/customers?count=orders&limit=50","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/api/products/5/customers","search":"?count=orders&limit=50","full":"http://opbeans-node:3000/api/products/5/customers?count=orders&limit=50"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"application/json; charset=utf-8","content-length":"2","etag":"W/\"2-l9Fw4VUO7kr8CvBlt4zaMCqXZ0w\"","date":"Mon, 28 Feb 2022 13:37:32 GMT","connection":"close"}}},"span_count":{"started":1},"outcome":"success","sample_rate":1}} {"transaction":{"name":"GET /api","type":"request","result":"HTTP 2xx","id":"b3ec4b7c41b1443d","trace_id":"3fcfaa5c98d6208f2362d3284089c8f0","duration":203.501,"timestamp":1646055452869032,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/stats","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/api/stats","full":"http://opbeans-node:3000/api/stats"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"application/json; charset=utf-8","date":"Mon, 28 Feb 2022 13:37:33 GMT","content-length":"110","connection":"close"}}},"span_count":{"started":1},"outcome":"success","sample_rate":1}} @@ -59,10 +54,8 @@ {"transaction":{"name":"GET static file","type":"request","result":"HTTP 2xx","id":"384955e628bdf3ee","trace_id":"f4081f0687b7d3cbff1449f703ed01d0","duration":17.336,"timestamp":1646055456266040,"sampled":true,"context":{"user":{},"tags":{},"custom":{},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/favicon.ico","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/favicon.ico","full":"http://opbeans-node:3000/favicon.ico"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","accept-ranges":"bytes","cache-control":"public, max-age=0","last-modified":"Sat, 11 Dec 2021 17:17:01 GMT","etag":"W/\"3aee-17daa7f7ac8\"","content-type":"image/x-icon","content-length":"15086","date":"Mon, 28 Feb 2022 13:37:36 GMT","connection":"close"}}},"span_count":{"started":0},"outcome":"success","sample_rate":1}} {"transaction":{"name":"GET static file","type":"request","result":"HTTP 2xx","id":"51042e08c535724f","trace_id":"8e48d2f8f487924cc876ee58f047f2b9","duration":23.066,"timestamp":1646055456762032,"sampled":true,"context":{"user":{},"tags":{},"custom":{},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/favicon.ico","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/favicon.ico","full":"http://opbeans-node:3000/favicon.ico"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","accept-ranges":"bytes","cache-control":"public, max-age=0","last-modified":"Sat, 11 Dec 2021 17:17:01 GMT","etag":"W/\"3aee-17daa7f7ac8\"","content-type":"image/x-icon","content-length":"15086","date":"Mon, 28 Feb 2022 13:37:36 GMT","connection":"close"}}},"span_count":{"started":0},"outcome":"success","sample_rate":1}} {"error":{"id":"cdf7401e5e4fcc03d3095922ca8cf2ba","timestamp":1646055457319000,"parent_id":"249230af6f4c8df1","trace_id":"deecd7368bb9addf4f9f38f0b4f0d007","transaction_id":"840ae56ad8211a1c","transaction":{"name":"GET unknown route (unnamed)","type":"request","sampled":true},"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/products/top","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/api/products/top","full":"http://opbeans-node:3000/api/products/top"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{},"headers_sent":false,"finished":false}},"exception":{"message":"connect ECONNREFUSED 172.23.0.12:3000","type":"Error","handled":false,"code":"ECONNREFUSED","attributes":{"errno":-111,"syscall":"connect","address":"172.23.0.12","port":3000},"stacktrace":[{"filename":"net.js","lineno":1159,"function":"afterConnect","library_frame":true,"abs_path":"net.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}]},"culprit":"afterConnect (net.js)"}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"version":"1.0.0"},"process":{"pid":139,"ppid":1,"title":"node /app/node_modules/.bin/workload","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js","-f",".workload.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"metricset":{"samples":{"system.cpu.total.norm.pct":{"value":0.9905660377358491},"system.memory.actual.free":{"value":7843381248},"system.memory.total":{"value":12544401408},"system.process.cpu.total.norm.pct":{"value":0},"system.process.cpu.system.norm.pct":{"value":0},"system.process.cpu.user.norm.pct":{"value":0},"system.process.memory.size":{"value":0},"system.process.memory.rss.bytes":{"value":0},"nodejs.handles.active":{"value":7},"nodejs.requests.active":{"value":10},"nodejs.eventloop.delay.avg.ms":{"value":0},"nodejs.memory.heap.allocated.bytes":{"value":33984512},"nodejs.memory.heap.used.bytes":{"value":15653992},"nodejs.memory.external.bytes":{"value":1954068},"nodejs.memory.arrayBuffers.bytes":{"value":245276}},"timestamp":1646055451829000,"tags":{"hostname":"698fd446b62a","env":"production"}}} {"error":{"id":"d317d21ecb5d06122492eb755ce136e9","timestamp":1646055457590000,"context":{"user":{},"tags":{},"custom":{}},"exception":{"message":"socket hang up","type":"Error","handled":false,"code":"ECONNRESET","stacktrace":[{"filename":"internal/errors.js","lineno":639,"function":"connResetException","library_frame":true,"abs_path":"internal/errors.js"},{"filename":"_http_client.js","lineno":499,"function":"socketOnEnd","library_frame":true,"abs_path":"_http_client.js"},{"filename":"events.js","lineno":412,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"internal/streams/readable.js","lineno":1334,"function":"endReadableNT","library_frame":true,"abs_path":"internal/streams/readable.js"},{"filename":"internal/process/task_queues.js","lineno":82,"function":"processTicksAndRejections","library_frame":true,"abs_path":"internal/process/task_queues.js"}]},"culprit":"connResetException (internal/errors.js)"}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"framework":{"name":"express","version":"4.17.3"},"version":"1.0.0"},"process":{"pid":166,"ppid":1,"title":"node /app/server.js","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"metricset":{"samples":{"system.cpu.total.norm.pct":{"value":0.9206819866567828},"system.memory.actual.free":{"value":7823028224},"system.memory.total":{"value":12544401408},"system.process.cpu.total.norm.pct":{"value":0},"system.process.cpu.system.norm.pct":{"value":0},"system.process.cpu.user.norm.pct":{"value":0},"system.process.memory.size":{"value":0},"system.process.memory.rss.bytes":{"value":0},"nodejs.handles.active":{"value":8},"nodejs.requests.active":{"value":11},"nodejs.eventloop.delay.avg.ms":{"value":0},"nodejs.memory.heap.allocated.bytes":{"value":54956032},"nodejs.memory.heap.used.bytes":{"value":28606640},"nodejs.memory.external.bytes":{"value":2507840},"nodejs.memory.arrayBuffers.bytes":{"value":792033}},"timestamp":1646055466864000,"tags":{"hostname":"698fd446b62a","env":"production"}}} {"transaction":{"name":"GET /throw-error","type":"request","result":"HTTP 5xx","id":"e254f7651ce692a3","trace_id":"32c4faf6d9cd1d9539d3d6bc42747d55","duration":124.681,"timestamp":1646055469003277,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/throw-error","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/throw-error","full":"http://opbeans-node:3000/throw-error"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":500,"headers":{"x-powered-by":"Express","content-security-policy":"default-src 'none'","x-content-type-options":"nosniff","content-type":"text/html; charset=utf-8","content-length":"148","date":"Mon, 28 Feb 2022 13:37:49 GMT","connection":"close"}}},"span_count":{"started":0},"outcome":"failure","sample_rate":1}} {"error":{"id":"a73dc4e39a98dc26c8dd111d7a85882c","timestamp":1646055469089000,"parent_id":"e254f7651ce692a3","trace_id":"32c4faf6d9cd1d9539d3d6bc42747d55","transaction_id":"e254f7651ce692a3","transaction":{"name":"GET /throw-error","type":"request","sampled":true},"context":{"user":{},"tags":{},"custom":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/throw-error","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/throw-error","full":"http://opbeans-node:3000/throw-error"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":500,"headers":{"x-powered-by":"Express","content-security-policy":"default-src 'none'","x-content-type-options":"nosniff","content-type":"text/html; charset=utf-8","content-length":"148","date":"Mon, 28 Feb 2022 13:37:49 GMT","connection":"close"},"headers_sent":true,"finished":true}},"exception":{"message":"this will get captured by express","type":"Error","handled":true,"stacktrace":[{"filename":"server/coffee.js","lineno":37,"function":"","library_frame":false,"abs_path":"/app/server/coffee.js","pre_context":["","app.get('/throw-error', function (req, res) {"],"context_line":" throw new Error('this will get captured by express')","post_context":["})",""]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/route.js","lineno":137,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" layer.handle_error(err, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/route.js","lineno":112,"function":"dispatch","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" req.route = this;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":281,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," if (route) {"],"context_line":" return layer.handle_request(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" req.originalUrl = req.originalUrl || req.url;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," function router(req, res, next) {"],"context_line":" router.handle(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":126,"function":"nextHook","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" function nextHook (err) {"," if (!err) req[symbols.staticFile] = false"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js","pre_context":[" }",""],"context_line":" next()","post_context":[" })",""]},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" // emit if listeners instead of responding"," if (hasListeners(this, 'error')) {"],"context_line":" return this.emit('error', createError(status, err, {","post_context":[" expose: false"," }))"]},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" case 'ENOENT':"," case 'ENOTDIR':"],"context_line":" this.error(404, error)","post_context":[" break"," default:"]},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (self._extensions.length <= i) {"," return err"],"context_line":" ? self.onStatError(err)","post_context":[" : self.error(404)"," }"]},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (err && err.code === 'ENOENT' && !extname(path) && path[path.length - 1] !== sep) {"," // not found, check extensions"],"context_line":" return next(err)","post_context":[" }"," if (err) return self.onStatError(err)"]},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}]},"culprit":" (server/coffee.js)"}} @@ -121,17 +114,13 @@ {"span":{"name":"POST example.com","type":"external","id":"a223b73222b81dea","transaction_id":"12716138751bef82","parent_id":"12716138751bef82","trace_id":"561c11d87c0fd892badd48aee6a035e3","subtype":"http","action":"POST","timestamp":1646055475737883,"duration":516.549,"context":{"http":{"method":"POST","status_code":404,"url":"http://example.com:80/opbeans"},"destination":{"service":{"name":"http://example.com","resource":"example.com:80","type":"external"},"address":"example.com","port":80}},"stacktrace":[{"filename":"node_modules/request/request.js","lineno":751,"function":"Request.start","library_frame":true,"abs_path":"/app/node_modules/request/request.js"},{"filename":"node_modules/request/request.js","lineno":1505,"function":"Request.end","library_frame":true,"abs_path":"/app/node_modules/request/request.js"},{"filename":"node_modules/request/request.js","lineno":564,"function":"end","library_frame":true,"abs_path":"/app/node_modules/request/request.js"},{"filename":"node_modules/request/request.js","lineno":578,"function":"Immediate.","library_frame":true,"abs_path":"/app/node_modules/request/request.js"},{"filename":"internal/timers.js","lineno":464,"function":"processImmediate","library_frame":true,"abs_path":"internal/timers.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}],"sync":false,"outcome":"failure","sample_rate":1}} {"span":{"name":"COMMIT","type":"db","id":"00fd89aca58ed40a","transaction_id":"12716138751bef82","parent_id":"12716138751bef82","trace_id":"561c11d87c0fd892badd48aee6a035e3","subtype":"postgresql","action":"query","timestamp":1646055476269883,"duration":16.26,"context":{"db":{"statement":"COMMIT","type":"sql"},"destination":{"service":{"name":"postgresql","resource":"postgresql","type":"db"},"address":"postgres","port":5432}},"stacktrace":[{"filename":"server/routes.js","lineno":278,"function":"","library_frame":false,"abs_path":"/app/server/routes.js","pre_context":[" accounting.placeOrder({ id: id }, function (err) {"," if (err) return rollback(err)"],"context_line":" client.query('COMMIT', function (err) {","post_context":[" if (err) return rollback(err)"," done()"]},{"filename":"server/accounting.js","lineno":7,"function":"Request._callback","library_frame":false,"abs_path":"/app/server/accounting.js","pre_context":["exports.placeOrder = function (order, cb) {"," request.post('http://example.com/opbeans', order, function (err, res, body) {"],"context_line":" cb(err, body)","post_context":[" })","}"]},{"filename":"node_modules/request/request.js","lineno":185,"function":"self.callback","library_frame":true,"abs_path":"/app/node_modules/request/request.js"},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/request/request.js","lineno":1154,"function":"Request.","library_frame":true,"abs_path":"/app/node_modules/request/request.js"},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/request/request.js","lineno":1076,"function":"IncomingMessage.","library_frame":true,"abs_path":"/app/node_modules/request/request.js"},{"filename":"events.js","lineno":519,"function":"onceWrapper","library_frame":true,"abs_path":"events.js"},{"filename":"events.js","lineno":412,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"internal/streams/readable.js","lineno":1334,"function":"endReadableNT","library_frame":true,"abs_path":"internal/streams/readable.js"},{"filename":"internal/process/task_queues.js","lineno":82,"function":"processTicksAndRejections","library_frame":true,"abs_path":"internal/process/task_queues.js"}],"sync":false,"outcome":"success","sample_rate":1}} {"error":{"id":"01ffdd38022b7d2d0ec55be31aca3ace","timestamp":1646055476481000,"parent_id":"1cf30144bb09493f","trace_id":"fe0dcb863369063a7c601343655690cb","transaction_id":"1cf30144bb09493f","transaction":{"name":"GET unknown route (unnamed)","type":"request","sampled":true},"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/log-message","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/log-message","full":"http://opbeans-node:3000/log-message"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{},"headers_sent":false,"finished":false}},"log":{"message":"this is a string","stacktrace":[{"filename":"server/coffee.js","lineno":27,"function":"","library_frame":false,"abs_path":"/app/server/coffee.js","pre_context":["","app.get('/log-message', function (req, res) {"],"context_line":" apm.captureError('this is a string', function (err) {","post_context":[" if (err) {"," res.status(500).send('could not capture error: ' + err.message)"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/route.js","lineno":137,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" layer.handle_error(err, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/route.js","lineno":112,"function":"dispatch","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" req.route = this;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":281,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," if (route) {"],"context_line":" return layer.handle_request(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" req.originalUrl = req.originalUrl || req.url;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," function router(req, res, next) {"],"context_line":" router.handle(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":126,"function":"nextHook","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" function nextHook (err) {"," if (!err) req[symbols.staticFile] = false"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js","pre_context":[" }",""],"context_line":" next()","post_context":[" })",""]},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" // emit if listeners instead of responding"," if (hasListeners(this, 'error')) {"],"context_line":" return this.emit('error', createError(status, err, {","post_context":[" expose: false"," }))"]},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" case 'ENOENT':"," case 'ENOTDIR':"],"context_line":" this.error(404, error)","post_context":[" break"," default:"]},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (self._extensions.length <= i) {"," return err"],"context_line":" ? self.onStatError(err)","post_context":[" : self.error(404)"," }"]},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (err && err.code === 'ENOENT' && !extname(path) && path[path.length - 1] !== sep) {"," // not found, check extensions"],"context_line":" return next(err)","post_context":[" }"," if (err) return self.onStatError(err)"]},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}]}}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"framework":{"name":"express","version":"4.17.3"},"version":"1.0.0"},"process":{"pid":166,"ppid":1,"title":"node /app/server.js","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"transaction":{"name":"GET /log-message","type":"request","result":"HTTP 5xx","id":"1cf30144bb09493f","trace_id":"fe0dcb863369063a7c601343655690cb","duration":100.379,"timestamp":1646055476467022,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/log-message","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/log-message","full":"http://opbeans-node:3000/log-message"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":500,"headers":{"x-powered-by":"Express","content-type":"text/html; charset=utf-8","content-length":"24","etag":"W/\"18-MS3VbhH7auHMzO0fUuNF6v14N/M\"","date":"Mon, 28 Feb 2022 13:37:56 GMT","connection":"close"}}},"span_count":{"started":0},"outcome":"failure","sample_rate":1}} {"error":{"id":"6ad65c64026409b3295abc6dc5d92806","timestamp":1646055477202000,"parent_id":"3c529eb8f59490da","trace_id":"0c58b9c17eb00a60e6ad91566dcfae74","transaction_id":"2e277c64cd0bb464","transaction":{"name":"GET unknown route (unnamed)","type":"request","sampled":true},"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/products/5/customers?count=orders&limit=50","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/api/products/5/customers","search":"?count=orders&limit=50","full":"http://opbeans-node:3000/api/products/5/customers?count=orders&limit=50"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{},"headers_sent":false,"finished":false}},"exception":{"message":"connect ECONNREFUSED 172.23.0.12:3000","type":"Error","handled":false,"code":"ECONNREFUSED","attributes":{"errno":-111,"syscall":"connect","address":"172.23.0.12","port":3000},"stacktrace":[{"filename":"net.js","lineno":1159,"function":"afterConnect","library_frame":true,"abs_path":"net.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}]},"culprit":"afterConnect (net.js)"}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"version":"1.0.0"},"process":{"pid":179,"ppid":1,"title":"node /app/node_modules/.bin/workload","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js","-f",".workload.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"metricset":{"samples":{"system.cpu.total.norm.pct":{"value":0.7936507936507936},"system.memory.actual.free":{"value":7792332800},"system.memory.total":{"value":12544401408},"system.process.cpu.total.norm.pct":{"value":0},"system.process.cpu.system.norm.pct":{"value":0},"system.process.cpu.user.norm.pct":{"value":0},"system.process.memory.size":{"value":0},"system.process.memory.rss.bytes":{"value":0},"nodejs.handles.active":{"value":7},"nodejs.requests.active":{"value":10},"nodejs.eventloop.delay.avg.ms":{"value":0},"nodejs.memory.heap.allocated.bytes":{"value":33722368},"nodejs.memory.heap.used.bytes":{"value":15770680},"nodejs.memory.external.bytes":{"value":1962260},"nodejs.memory.arrayBuffers.bytes":{"value":253468}},"timestamp":1646055468416000,"tags":{"hostname":"698fd446b62a","env":"production"}}} {"error":{"id":"227980ed0047408935627ce56a5bc1b2","timestamp":1646055477680000,"context":{"user":{},"tags":{},"custom":{}},"exception":{"message":"connect ECONNREFUSED 172.23.0.10:3000","type":"Error","handled":false,"code":"ECONNREFUSED","attributes":{"errno":-111,"syscall":"connect","address":"172.23.0.10","port":3000},"stacktrace":[{"filename":"net.js","lineno":1159,"function":"afterConnect","library_frame":true,"abs_path":"net.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}]},"culprit":"afterConnect (net.js)"}} {"error":{"id":"57a5b9a283a3ffa77a8f920a46cd43f6","timestamp":1646055477720000,"context":{"user":{},"tags":{},"custom":{}},"exception":{"message":"socket hang up","type":"Error","handled":false,"code":"ECONNRESET","stacktrace":[{"filename":"internal/errors.js","lineno":639,"function":"connResetException","library_frame":true,"abs_path":"internal/errors.js"},{"filename":"_http_client.js","lineno":499,"function":"socketOnEnd","library_frame":true,"abs_path":"_http_client.js"},{"filename":"events.js","lineno":412,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"internal/streams/readable.js","lineno":1334,"function":"endReadableNT","library_frame":true,"abs_path":"internal/streams/readable.js"},{"filename":"internal/process/task_queues.js","lineno":82,"function":"processTicksAndRejections","library_frame":true,"abs_path":"internal/process/task_queues.js"}]},"culprit":"connResetException (internal/errors.js)"}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"framework":{"name":"express","version":"4.17.3"},"version":"1.0.0"},"process":{"pid":210,"ppid":1,"title":"node /app/server.js","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"metricset":{"samples":{"system.cpu.total.norm.pct":{"value":0.9503985828166519},"system.memory.actual.free":{"value":7879913472},"system.memory.total":{"value":12544401408},"system.process.cpu.total.norm.pct":{"value":0},"system.process.cpu.system.norm.pct":{"value":0},"system.process.cpu.user.norm.pct":{"value":0},"system.process.memory.size":{"value":0},"system.process.memory.rss.bytes":{"value":0},"nodejs.handles.active":{"value":8},"nodejs.requests.active":{"value":11},"nodejs.eventloop.delay.avg.ms":{"value":0},"nodejs.memory.heap.allocated.bytes":{"value":55214080},"nodejs.memory.heap.used.bytes":{"value":28855328},"nodejs.memory.external.bytes":{"value":2516032},"nodejs.memory.arrayBuffers.bytes":{"value":800225}},"timestamp":1646055485585000,"tags":{"hostname":"698fd446b62a","env":"production"}}} {"error":{"id":"5c7995a437b59adc9fc6c2c5f82d0a34","timestamp":1646055487492000,"parent_id":"91b7355d8df28973","trace_id":"b296d55ffc012cc8a0e1ca6d95575e1b","transaction_id":"91b7355d8df28973","transaction":{"name":"GET unknown route (unnamed)","type":"request","sampled":true},"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/log-error","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/log-error","full":"http://opbeans-node:3000/log-error"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{},"headers_sent":false,"finished":false}},"exception":{"message":"foo","type":"Error","handled":true,"stacktrace":[{"filename":"server/coffee.js","lineno":17,"function":"","library_frame":false,"abs_path":"/app/server/coffee.js","pre_context":["","app.get('/log-error', function (req, res) {"],"context_line":" apm.captureError(new Error('foo'), function (err) {","post_context":[" if (err) {"," res.status(500).send('could not capture error: ' + err.message)"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/route.js","lineno":137,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" layer.handle_error(err, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/route.js","lineno":112,"function":"dispatch","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" req.route = this;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":281,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," if (route) {"],"context_line":" return layer.handle_request(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" req.originalUrl = req.originalUrl || req.url;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," function router(req, res, next) {"],"context_line":" router.handle(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":126,"function":"nextHook","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" function nextHook (err) {"," if (!err) req[symbols.staticFile] = false"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js","pre_context":[" }",""],"context_line":" next()","post_context":[" })",""]},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" // emit if listeners instead of responding"," if (hasListeners(this, 'error')) {"],"context_line":" return this.emit('error', createError(status, err, {","post_context":[" expose: false"," }))"]},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" case 'ENOENT':"," case 'ENOTDIR':"],"context_line":" this.error(404, error)","post_context":[" break"," default:"]},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (self._extensions.length <= i) {"," return err"],"context_line":" ? self.onStatError(err)","post_context":[" : self.error(404)"," }"]},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (err && err.code === 'ENOENT' && !extname(path) && path[path.length - 1] !== sep) {"," // not found, check extensions"],"context_line":" return next(err)","post_context":[" }"," if (err) return self.onStatError(err)"]},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}]},"culprit":" (server/coffee.js)"}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"framework":{"name":"express","version":"4.17.3"},"version":"1.0.0"},"process":{"pid":210,"ppid":1,"title":"node /app/server.js","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"transaction":{"name":"GET /log-error","type":"request","result":"HTTP 5xx","id":"91b7355d8df28973","trace_id":"b296d55ffc012cc8a0e1ca6d95575e1b","duration":287.113,"timestamp":1646055487429394,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/log-error","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/log-error","full":"http://opbeans-node:3000/log-error"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":500,"headers":{"x-powered-by":"Express","content-type":"text/html; charset=utf-8","content-length":"24","etag":"W/\"18-MS3VbhH7auHMzO0fUuNF6v14N/M\"","date":"Mon, 28 Feb 2022 13:38:07 GMT","connection":"close"}}},"span_count":{"started":0},"outcome":"failure","sample_rate":1}} {"transaction":{"name":"GET /api","type":"request","result":"HTTP 2xx","id":"b3f7f1b7dc5e4042","trace_id":"9267bb759a7fa7843da4960fba465492","duration":114.559,"timestamp":1646055487882096,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/customers","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/api/customers","full":"http://opbeans-node:3000/api/customers"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"application/json; charset=utf-8","date":"Mon, 28 Feb 2022 13:38:07 GMT","connection":"close","transfer-encoding":"chunked"}}},"span_count":{"started":1},"outcome":"success","sample_rate":1}} {"span":{"name":"GET opbeans-go:3000","type":"external","id":"e85113d3f23ec9e7","transaction_id":"b3f7f1b7dc5e4042","parent_id":"b3f7f1b7dc5e4042","trace_id":"9267bb759a7fa7843da4960fba465492","subtype":"http","action":"GET","timestamp":1646055487901512,"duration":67.864,"context":{"http":{"method":"GET","status_code":200,"url":"http://opbeans-go:3000/api/customers"},"destination":{"service":{"name":"http://opbeans-go:3000","resource":"opbeans-go:3000","type":"external"},"address":"opbeans-go","port":3000}},"stacktrace":[{"filename":"server.js","lineno":101,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" req.log.debug('proxying request: %s => %s:%s', req.originalUrl, opts.hostname, opts.port + opts.path)",""],"context_line":" const clientReq = http.request(opts)","post_context":[""," clientReq.on('response', clientRes => {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":641,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":260,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js"},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}],"sync":false,"outcome":"success","sample_rate":1}} @@ -147,10 +136,8 @@ {"transaction":{"name":"GET /api/customers","type":"request","result":"HTTP 2xx","id":"96758a33b18e7df8","trace_id":"83c206e4b8d001ef743dd8a27828487d","parent_id":"ffeb3fd143dc5566","duration":324.813,"timestamp":1646055489479031,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/customers","protocol":"http:","hostname":"opbeans-go","port":"3000","pathname":"/api/customers","full":"http://opbeans-go:3000/api/customers"},"headers":{"host":"opbeans-go:3000","elastic-apm-traceparent":"00-83c206e4b8d001ef743dd8a27828487d-ffeb3fd143dc5566-01","traceparent":"00-83c206e4b8d001ef743dd8a27828487d-ffeb3fd143dc5566-01","tracestate":"es=s:1","x-forwarded-for":"172.23.0.10","accept-encoding":"gzip"},"socket":{"remote_address":"::ffff:172.23.0.9"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"application/json; charset=utf-8","content-length":"186769","etag":"W/\"2d991-yG3J8W/roH7fSxXTudZrO27Ax9s\"","date":"Mon, 28 Feb 2022 13:38:09 GMT","connection":"keep-alive","keep-alive":"timeout=5"}}},"span_count":{"started":2},"outcome":"success","sample_rate":1}} {"span":{"name":"GET opbeans-go:3000","type":"external","id":"4710c7b76c097bce","transaction_id":"ab6f233691baf0d9","parent_id":"ab6f233691baf0d9","trace_id":"83c206e4b8d001ef743dd8a27828487d","subtype":"http","action":"GET","timestamp":1646055489443860,"duration":345.886,"context":{"http":{"method":"GET","status_code":200,"url":"http://opbeans-go:3000/api/customers"},"destination":{"service":{"name":"http://opbeans-go:3000","resource":"opbeans-go:3000","type":"external"},"address":"opbeans-go","port":3000}},"stacktrace":[{"filename":"server.js","lineno":101,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" req.log.debug('proxying request: %s => %s:%s', req.originalUrl, opts.hostname, opts.port + opts.path)",""],"context_line":" const clientReq = http.request(opts)","post_context":[""," clientReq.on('response', clientRes => {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":641,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":260,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js"},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}],"sync":false,"outcome":"success","sample_rate":1}} {"error":{"id":"9f1d71594f4797cf0861674dd220aec0","timestamp":1646055489929000,"parent_id":"bc511beb09b23141","trace_id":"33c4d55ce3b25fad7a37d6a6489d735b","transaction_id":"471344daa9a1b5d4","transaction":{"name":"GET unknown route (unnamed)","type":"request","sampled":true},"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/products/5/customers?count=orders&limit=50","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/api/products/5/customers","search":"?count=orders&limit=50","full":"http://opbeans-node:3000/api/products/5/customers?count=orders&limit=50"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{},"headers_sent":false,"finished":false}},"exception":{"message":"connect ECONNREFUSED 172.23.0.12:3000","type":"Error","handled":false,"code":"ECONNREFUSED","attributes":{"errno":-111,"syscall":"connect","address":"172.23.0.12","port":3000},"stacktrace":[{"filename":"net.js","lineno":1159,"function":"afterConnect","library_frame":true,"abs_path":"net.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}]},"culprit":"afterConnect (net.js)"}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"version":"1.0.0"},"process":{"pid":223,"ppid":1,"title":"node /app/node_modules/.bin/workload","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js","-f",".workload.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"metricset":{"samples":{"system.cpu.total.norm.pct":{"value":0.8125},"system.memory.actual.free":{"value":7850135552},"system.memory.total":{"value":12544401408},"system.process.cpu.total.norm.pct":{"value":0},"system.process.cpu.system.norm.pct":{"value":0},"system.process.cpu.user.norm.pct":{"value":0},"system.process.memory.size":{"value":0},"system.process.memory.rss.bytes":{"value":0},"nodejs.handles.active":{"value":7},"nodejs.requests.active":{"value":10},"nodejs.eventloop.delay.avg.ms":{"value":0},"nodejs.memory.heap.allocated.bytes":{"value":33460224},"nodejs.memory.heap.used.bytes":{"value":15595312},"nodejs.memory.external.bytes":{"value":1954068},"nodejs.memory.arrayBuffers.bytes":{"value":245276}},"timestamp":1646055486915000,"tags":{"hostname":"698fd446b62a","env":"production"}}} {"error":{"id":"14f0120ca70841056fff5001e49eaee0","timestamp":1646055490201000,"context":{"user":{},"tags":{},"custom":{}},"exception":{"message":"socket hang up","type":"Error","handled":false,"code":"ECONNRESET","stacktrace":[{"filename":"internal/errors.js","lineno":639,"function":"connResetException","library_frame":true,"abs_path":"internal/errors.js"},{"filename":"_http_client.js","lineno":499,"function":"socketOnEnd","library_frame":true,"abs_path":"_http_client.js"},{"filename":"events.js","lineno":412,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"internal/streams/readable.js","lineno":1334,"function":"endReadableNT","library_frame":true,"abs_path":"internal/streams/readable.js"},{"filename":"internal/process/task_queues.js","lineno":82,"function":"processTicksAndRejections","library_frame":true,"abs_path":"internal/process/task_queues.js"}]},"culprit":"connResetException (internal/errors.js)"}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"framework":{"name":"express","version":"4.17.3"},"version":"1.0.0"},"process":{"pid":244,"ppid":1,"title":"node /app/server.js","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"metricset":{"samples":{"system.cpu.total.norm.pct":{"value":0.9045977011494253},"system.memory.actual.free":{"value":7737372672},"system.memory.total":{"value":12544401408},"system.process.cpu.total.norm.pct":{"value":0},"system.process.cpu.system.norm.pct":{"value":0},"system.process.cpu.user.norm.pct":{"value":0},"system.process.memory.size":{"value":0},"system.process.memory.rss.bytes":{"value":0},"nodejs.handles.active":{"value":8},"nodejs.requests.active":{"value":11},"nodejs.eventloop.delay.avg.ms":{"value":0},"nodejs.memory.heap.allocated.bytes":{"value":54951936},"nodejs.memory.heap.used.bytes":{"value":28830272},"nodejs.memory.external.bytes":{"value":2499648},"nodejs.memory.arrayBuffers.bytes":{"value":783841}},"timestamp":1646055496473000,"tags":{"hostname":"698fd446b62a","env":"production"}}} {"transaction":{"name":"GET /api/customers/:id","type":"request","result":"HTTP 2xx","id":"4a6e3a188938bfce","trace_id":"8af954e71f043ae5b016448dd873505d","duration":187.257,"timestamp":1646055497665346,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/customers/888","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/api/customers/888","full":"http://opbeans-node:3000/api/customers/888"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"application/json; charset=utf-8","content-length":"200","etag":"W/\"c8-+pUtv7cA6KJLNOQ3Asg1KUYsjFk\"","date":"Mon, 28 Feb 2022 13:38:17 GMT","connection":"close"}}},"span_count":{"started":1},"outcome":"success","sample_rate":1}} {"span":{"name":"SELECT FROM customers","type":"db","id":"069da15261c7b1e2","transaction_id":"4a6e3a188938bfce","parent_id":"4a6e3a188938bfce","trace_id":"8af954e71f043ae5b016448dd873505d","subtype":"postgresql","action":"query","timestamp":1646055497747369,"duration":27.903,"context":{"db":{"statement":"SELECT * FROM customers WHERE id=$1","type":"sql"},"destination":{"service":{"name":"postgresql","resource":"postgresql","type":"db"},"address":"postgres","port":5432}},"stacktrace":[{"filename":"node_modules/pg-pool/index.js","lineno":406,"function":"PendingItem.callback","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":298,"function":"_acquireClient","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":270,"function":"Client.","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg/lib/client.js","lineno":279,"function":"_handleReadyForQuery","library_frame":true,"abs_path":"/app/node_modules/pg/lib/client.js"},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/pg/lib/connection.js","lineno":114,"function":"","library_frame":true,"abs_path":"/app/node_modules/pg/lib/connection.js"},{"filename":"node_modules/pg-protocol/src/parser.ts","lineno":104,"function":"parse","library_frame":true,"abs_path":"/app/node_modules/pg-protocol/src/parser.ts"},{"filename":"node_modules/pg-protocol/src/index.ts","lineno":7,"function":"Socket.","library_frame":true,"abs_path":"/app/node_modules/pg-protocol/src/index.ts"},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"internal/streams/readable.js","lineno":293,"function":"addChunk","library_frame":true,"abs_path":"internal/streams/readable.js"},{"filename":"internal/streams/readable.js","lineno":267,"function":"readableAddChunk","library_frame":true,"abs_path":"internal/streams/readable.js"},{"filename":"internal/streams/readable.js","lineno":206,"function":"Readable.push","library_frame":true,"abs_path":"internal/streams/readable.js"},{"filename":"internal/stream_base_commons.js","lineno":188,"function":"onStreamRead","library_frame":true,"abs_path":"internal/stream_base_commons.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}],"sync":true,"outcome":"success","sample_rate":1}} @@ -159,10 +146,8 @@ {"span":{"name":"SELECT FROM orders","type":"db","id":"8eea6e42e14213e6","transaction_id":"0bdf59dc612775e2","parent_id":"0bdf59dc612775e2","trace_id":"d72ff2e25f27de70f3c6919a060eada4","subtype":"postgresql","action":"query","timestamp":1646055498342926,"duration":16.397,"context":{"db":{"statement":"SELECT o.*, c.full_name AS customer_name FROM orders o LEFT JOIN customers c ON c.id=o.customer_id LIMIT $1","type":"sql"},"destination":{"service":{"name":"postgresql","resource":"postgresql","type":"db"},"address":"postgres","port":5432}},"stacktrace":[{"filename":"node_modules/pg-pool/index.js","lineno":406,"function":"PendingItem.callback","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":298,"function":"_acquireClient","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":146,"function":"_pulseQueue","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":179,"function":"","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"internal/process/task_queues.js","lineno":77,"function":"processTicksAndRejections","library_frame":true,"abs_path":"internal/process/task_queues.js"}],"sync":false,"outcome":"success","sample_rate":1}} {"transaction":{"name":"GET static file","type":"request","result":"HTTP 2xx","id":"26d1f31d0f2bbb72","trace_id":"4b4d1c7a6e32a18bc6584a6dc037097b","duration":22.119,"timestamp":1646055498618020,"sampled":true,"context":{"user":{},"tags":{},"custom":{},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/favicon.ico","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/favicon.ico","full":"http://opbeans-node:3000/favicon.ico"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","accept-ranges":"bytes","cache-control":"public, max-age=0","last-modified":"Sat, 11 Dec 2021 17:17:01 GMT","etag":"W/\"3aee-17daa7f7ac8\"","content-type":"image/x-icon","content-length":"15086","date":"Mon, 28 Feb 2022 13:38:18 GMT","connection":"close"}}},"span_count":{"started":0},"outcome":"success","sample_rate":1}} {"error":{"id":"490192f45b539e7ae874b40a07ca8374","timestamp":1646055499127000,"parent_id":"6762cbe12ae40749","trace_id":"fc7633b608a6908a30c15e12ce618219","transaction_id":"6762cbe12ae40749","transaction":{"name":"GET unknown route (unnamed)","type":"request","sampled":true},"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/throw-async-error","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/throw-async-error","full":"http://opbeans-node:3000/throw-async-error"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{},"headers_sent":false,"finished":false}},"exception":{"message":"this will not get captured by express","type":"Error","handled":false,"stacktrace":[{"filename":"server/coffee.js","lineno":42,"function":"","library_frame":false,"abs_path":"/app/server/coffee.js","pre_context":["app.get('/throw-async-error', function (req, res) {"," process.nextTick(function () {"],"context_line":" throw new Error('this will not get captured by express')","post_context":[" })","})"]},{"filename":"internal/process/task_queues.js","lineno":77,"function":"processTicksAndRejections","library_frame":true,"abs_path":"internal/process/task_queues.js"}]},"culprit":" (server/coffee.js)"}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"version":"1.0.0"},"process":{"pid":257,"ppid":1,"title":"node /app/node_modules/.bin/workload","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js","-f",".workload.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"metricset":{"samples":{"system.cpu.total.norm.pct":{"value":0.5142857142857142},"system.memory.actual.free":{"value":7710240768},"system.memory.total":{"value":12544401408},"system.process.cpu.total.norm.pct":{"value":0},"system.process.cpu.system.norm.pct":{"value":0},"system.process.cpu.user.norm.pct":{"value":0},"system.process.memory.size":{"value":0},"system.process.memory.rss.bytes":{"value":0},"nodejs.handles.active":{"value":7},"nodejs.requests.active":{"value":10},"nodejs.eventloop.delay.avg.ms":{"value":0},"nodejs.memory.heap.allocated.bytes":{"value":34246656},"nodejs.memory.heap.used.bytes":{"value":15630424},"nodejs.memory.external.bytes":{"value":1962260},"nodejs.memory.arrayBuffers.bytes":{"value":253468}},"timestamp":1646055497136000,"tags":{"hostname":"698fd446b62a","env":"production"}}} {"error":{"id":"eedccbd31e6801a84b9dbc8d48b8674a","timestamp":1646055499267000,"context":{"user":{},"tags":{},"custom":{}},"exception":{"message":"socket hang up","type":"Error","handled":false,"code":"ECONNRESET","stacktrace":[{"filename":"internal/errors.js","lineno":639,"function":"connResetException","library_frame":true,"abs_path":"internal/errors.js"},{"filename":"_http_client.js","lineno":499,"function":"socketOnEnd","library_frame":true,"abs_path":"_http_client.js"},{"filename":"events.js","lineno":412,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"internal/streams/readable.js","lineno":1334,"function":"endReadableNT","library_frame":true,"abs_path":"internal/streams/readable.js"},{"filename":"internal/process/task_queues.js","lineno":82,"function":"processTicksAndRejections","library_frame":true,"abs_path":"internal/process/task_queues.js"}]},"culprit":"connResetException (internal/errors.js)"}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"framework":{"name":"express","version":"4.17.3"},"version":"1.0.0"},"process":{"pid":276,"ppid":1,"title":"node /app/server.js","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"metricset":{"samples":{"system.cpu.total.norm.pct":{"value":0.9067702552719201},"system.memory.actual.free":{"value":7718432768},"system.memory.total":{"value":12544401408},"system.process.cpu.total.norm.pct":{"value":0},"system.process.cpu.system.norm.pct":{"value":0},"system.process.cpu.user.norm.pct":{"value":0},"system.process.memory.size":{"value":0},"system.process.memory.rss.bytes":{"value":0},"nodejs.handles.active":{"value":8},"nodejs.requests.active":{"value":11},"nodejs.eventloop.delay.avg.ms":{"value":0},"nodejs.memory.heap.allocated.bytes":{"value":54956032},"nodejs.memory.heap.used.bytes":{"value":28506424},"nodejs.memory.external.bytes":{"value":2499648},"nodejs.memory.arrayBuffers.bytes":{"value":783841}},"timestamp":1646055504366000,"tags":{"hostname":"698fd446b62a","env":"production"}}} {"transaction":{"name":"GET /*","type":"request","result":"HTTP 2xx","id":"2ec669b268b2dcd7","trace_id":"1327a3b8ea92eb5b4d1fde7d499d76e8","parent_id":"5f02c8b6abf9f77c","duration":84.393,"timestamp":1646055505238539,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/","full":"http://opbeans-node:3000/"},"headers":{"host":"opbeans-node:3000","user-agent":"Wget","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"text/html","content-length":"813","date":"Mon, 28 Feb 2022 13:38:25 GMT","connection":"close"}}},"span_count":{"started":0},"outcome":"success","sample_rate":1}} {"transaction":{"name":"GET /api/products/:id","type":"request","result":"HTTP 2xx","id":"af08df2cc3c5d541","trace_id":"0f3cbb1b5ea89ee74345ab79c08bd41d","duration":189.947,"timestamp":1646055506987036,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/products/3","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/api/products/3","full":"http://opbeans-node:3000/api/products/3"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"application/json; charset=utf-8","content-length":"231","etag":"W/\"e7-kkuzj37GZDzXDh0CWqh5Gan0VO4\"","date":"Mon, 28 Feb 2022 13:38:27 GMT","connection":"close"}}},"span_count":{"started":1},"outcome":"success","sample_rate":1}} @@ -176,16 +161,13 @@ {"span":{"name":"SELECT FROM customers","type":"db","id":"e63b2e7d7eea1805","transaction_id":"5c21f7dcac79da3a","parent_id":"5c21f7dcac79da3a","trace_id":"3d0c7329024e960e52fbf45d444ebe58","subtype":"postgresql","action":"query","timestamp":1646055508917483,"duration":4.695,"context":{"db":{"statement":"SELECT c.* FROM customers c LEFT JOIN orders o ON c.id=o.customer_id LEFT JOIN order_lines l ON o.id=l.order_id LEFT JOIN products p ON l.product_id=p.id WHERE p.id=$1 LIMIT $2","type":"sql"},"destination":{"service":{"name":"postgresql","resource":"postgresql","type":"db"},"address":"postgres","port":5432}},"sync":false,"outcome":"success","sample_rate":1}} {"transaction":{"name":"GET /api/products/:id/customers","type":"request","result":"HTTP 2xx","id":"5c21f7dcac79da3a","trace_id":"3d0c7329024e960e52fbf45d444ebe58","duration":20.087,"timestamp":1646055508909021,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/products/4/customers","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/api/products/4/customers","full":"http://opbeans-node:3000/api/products/4/customers"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"application/json; charset=utf-8","content-length":"2","etag":"W/\"2-l9Fw4VUO7kr8CvBlt4zaMCqXZ0w\"","date":"Mon, 28 Feb 2022 13:38:28 GMT","connection":"close"}}},"span_count":{"started":1},"outcome":"success","sample_rate":1}} {"error":{"id":"59cd3ee39a8ed4b221ea28c7983ae163","timestamp":1646055509427000,"parent_id":"4f4ce08d91657b1c","trace_id":"c9be06a56897430b28ca8c5ffd69abaf","transaction_id":"4f4ce08d91657b1c","transaction":{"name":"GET unknown route (unnamed)","type":"request","sampled":true},"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/log-error","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/log-error","full":"http://opbeans-node:3000/log-error"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{},"headers_sent":false,"finished":false}},"exception":{"message":"foo","type":"Error","handled":true,"stacktrace":[{"filename":"server/coffee.js","lineno":17,"function":"","library_frame":false,"abs_path":"/app/server/coffee.js","pre_context":["","app.get('/log-error', function (req, res) {"],"context_line":" apm.captureError(new Error('foo'), function (err) {","post_context":[" if (err) {"," res.status(500).send('could not capture error: ' + err.message)"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/route.js","lineno":137,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" layer.handle_error(err, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/route.js","lineno":112,"function":"dispatch","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" req.route = this;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":281,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," if (route) {"],"context_line":" return layer.handle_request(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" req.originalUrl = req.originalUrl || req.url;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," function router(req, res, next) {"],"context_line":" router.handle(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":126,"function":"nextHook","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" function nextHook (err) {"," if (!err) req[symbols.staticFile] = false"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js","pre_context":[" }",""],"context_line":" next()","post_context":[" })",""]},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" // emit if listeners instead of responding"," if (hasListeners(this, 'error')) {"],"context_line":" return this.emit('error', createError(status, err, {","post_context":[" expose: false"," }))"]},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" case 'ENOENT':"," case 'ENOTDIR':"],"context_line":" this.error(404, error)","post_context":[" break"," default:"]},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (self._extensions.length <= i) {"," return err"],"context_line":" ? self.onStatError(err)","post_context":[" : self.error(404)"," }"]},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (err && err.code === 'ENOENT' && !extname(path) && path[path.length - 1] !== sep) {"," // not found, check extensions"],"context_line":" return next(err)","post_context":[" }"," if (err) return self.onStatError(err)"]},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}]},"culprit":" (server/coffee.js)"}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"framework":{"name":"express","version":"4.17.3"},"version":"1.0.0"},"process":{"pid":276,"ppid":1,"title":"node /app/server.js","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"transaction":{"name":"GET /log-error","type":"request","result":"HTTP 5xx","id":"4f4ce08d91657b1c","trace_id":"c9be06a56897430b28ca8c5ffd69abaf","duration":118.055,"timestamp":1646055509414024,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/log-error","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/log-error","full":"http://opbeans-node:3000/log-error"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":500,"headers":{"x-powered-by":"Express","content-type":"text/html; charset=utf-8","content-length":"24","etag":"W/\"18-MS3VbhH7auHMzO0fUuNF6v14N/M\"","date":"Mon, 28 Feb 2022 13:38:29 GMT","connection":"close"}}},"span_count":{"started":0},"outcome":"failure","sample_rate":1}} {"transaction":{"name":"GET /*","type":"request","result":"HTTP 2xx","id":"fee0e545d19afe2b","trace_id":"602578f5523d8e9ed9c3b54693251603","parent_id":"68a6adca0a8783fc","duration":38.235,"timestamp":1646055509926030,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/","full":"http://opbeans-node:3000/"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"text/html","content-length":"813","date":"Mon, 28 Feb 2022 13:38:29 GMT","connection":"close"}}},"span_count":{"started":0},"outcome":"success","sample_rate":1}} {"transaction":{"name":"GET /*","type":"request","result":"HTTP 2xx","id":"0e42221a0c41aba0","trace_id":"ce2e76a862d49a4825264e6a786d5e93","parent_id":"bf9db0735731ac21","duration":26.267,"timestamp":1646055510429056,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/","full":"http://opbeans-node:3000/"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"text/html","content-length":"813","date":"Mon, 28 Feb 2022 13:38:30 GMT","connection":"close"}}},"span_count":{"started":0},"outcome":"success","sample_rate":1}} {"transaction":{"name":"GET /api","type":"request","result":"HTTP 2xx","id":"b53f5727ecc57790","trace_id":"3507e26a72d394f84df5789f6a1af90d","duration":87.646,"timestamp":1646055510922036,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/types/3","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/api/types/3","full":"http://opbeans-node:3000/api/types/3"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","server":"gunicorn","date":"Mon, 28 Feb 2022 13:38:30 GMT","connection":"close","content-type":"application/json","x-frame-options":"DENY","content-length":"205","vary":"Cookie","x-content-type-options":"nosniff","referrer-policy":"same-origin"}}},"span_count":{"started":1},"outcome":"success","sample_rate":1}} {"span":{"name":"GET opbeans-python:3000","type":"external","id":"8a578bac165e1e8a","transaction_id":"b53f5727ecc57790","parent_id":"b53f5727ecc57790","trace_id":"3507e26a72d394f84df5789f6a1af90d","subtype":"http","action":"GET","timestamp":1646055510929052,"duration":62.627,"context":{"http":{"method":"GET","status_code":200,"url":"http://opbeans-python:3000/api/types/3"},"destination":{"service":{"name":"http://opbeans-python:3000","resource":"opbeans-python:3000","type":"external"},"address":"opbeans-python","port":3000}},"stacktrace":[{"filename":"server.js","lineno":101,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" req.log.debug('proxying request: %s => %s:%s', req.originalUrl, opts.hostname, opts.port + opts.path)",""],"context_line":" const clientReq = http.request(opts)","post_context":[""," clientReq.on('response', clientRes => {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":641,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":260,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js"},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}],"sync":false,"outcome":"success","sample_rate":1}} {"error":{"id":"fa13ea4fdf0ff863849b029248afe863","timestamp":1646055511435000,"parent_id":"c749f1f4d0cfe9dc","trace_id":"6ea846b817de3c967e0b4312fb4ed0bb","transaction_id":"c749f1f4d0cfe9dc","transaction":{"name":"GET unknown route (unnamed)","type":"request","sampled":true},"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/log-error","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/log-error","full":"http://opbeans-node:3000/log-error"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{},"headers_sent":false,"finished":false}},"exception":{"message":"foo","type":"Error","handled":true,"stacktrace":[{"filename":"server/coffee.js","lineno":17,"function":"","library_frame":false,"abs_path":"/app/server/coffee.js","pre_context":["","app.get('/log-error', function (req, res) {"],"context_line":" apm.captureError(new Error('foo'), function (err) {","post_context":[" if (err) {"," res.status(500).send('could not capture error: ' + err.message)"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/route.js","lineno":137,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" layer.handle_error(err, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/route.js","lineno":112,"function":"dispatch","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" req.route = this;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":281,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," if (route) {"],"context_line":" return layer.handle_request(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" req.originalUrl = req.originalUrl || req.url;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," function router(req, res, next) {"],"context_line":" router.handle(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":126,"function":"nextHook","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" function nextHook (err) {"," if (!err) req[symbols.staticFile] = false"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js","pre_context":[" }",""],"context_line":" next()","post_context":[" })",""]},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" // emit if listeners instead of responding"," if (hasListeners(this, 'error')) {"],"context_line":" return this.emit('error', createError(status, err, {","post_context":[" expose: false"," }))"]},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" case 'ENOENT':"," case 'ENOTDIR':"],"context_line":" this.error(404, error)","post_context":[" break"," default:"]},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (self._extensions.length <= i) {"," return err"],"context_line":" ? self.onStatError(err)","post_context":[" : self.error(404)"," }"]},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (err && err.code === 'ENOENT' && !extname(path) && path[path.length - 1] !== sep) {"," // not found, check extensions"],"context_line":" return next(err)","post_context":[" }"," if (err) return self.onStatError(err)"]},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}]},"culprit":" (server/coffee.js)"}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"version":"1.0.0"},"process":{"pid":289,"ppid":1,"title":"node /app/node_modules/.bin/workload","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js","-f",".workload.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"metricset":{"samples":{"system.cpu.total.norm.pct":{"value":0.8545454545454545},"system.memory.actual.free":{"value":7662845952},"system.memory.total":{"value":12544401408},"system.process.cpu.total.norm.pct":{"value":0},"system.process.cpu.system.norm.pct":{"value":0},"system.process.cpu.user.norm.pct":{"value":0},"system.process.memory.size":{"value":0},"system.process.memory.rss.bytes":{"value":0},"nodejs.handles.active":{"value":7},"nodejs.requests.active":{"value":10},"nodejs.eventloop.delay.avg.ms":{"value":0},"nodejs.memory.heap.allocated.bytes":{"value":33984512},"nodejs.memory.heap.used.bytes":{"value":15700072},"nodejs.memory.external.bytes":{"value":1954068},"nodejs.memory.arrayBuffers.bytes":{"value":245276}},"timestamp":1646055506454000,"tags":{"hostname":"698fd446b62a","env":"production"}}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"framework":{"name":"express","version":"4.17.3"},"version":"1.0.0"},"process":{"pid":276,"ppid":1,"title":"node /app/server.js","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"transaction":{"name":"GET /log-error","type":"request","result":"HTTP 5xx","id":"c749f1f4d0cfe9dc","trace_id":"6ea846b817de3c967e0b4312fb4ed0bb","duration":42.818,"timestamp":1646055511427024,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/log-error","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/log-error","full":"http://opbeans-node:3000/log-error"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":500,"headers":{"x-powered-by":"Express","content-type":"text/html; charset=utf-8","content-length":"24","etag":"W/\"18-MS3VbhH7auHMzO0fUuNF6v14N/M\"","date":"Mon, 28 Feb 2022 13:38:31 GMT","connection":"close"}}},"span_count":{"started":0},"outcome":"failure","sample_rate":1}} {"transaction":{"name":"GET /api/products/:id/customers","type":"request","result":"HTTP 2xx","id":"ca09ac639d109d69","trace_id":"0fd056cc0fb4931f05a686f644a0216e","duration":41.869,"timestamp":1646055511928045,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/products/3/customers","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/api/products/3/customers","full":"http://opbeans-node:3000/api/products/3/customers"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"application/json; charset=utf-8","content-length":"2247","etag":"W/\"8c7-DzU3uvPT9Eu5vDsXxF0AVpUtaII\"","date":"Mon, 28 Feb 2022 13:38:31 GMT","connection":"close"}}},"span_count":{"started":1},"outcome":"success","sample_rate":1}} {"span":{"name":"SELECT FROM customers","type":"db","id":"d6e774e8fd7553c2","transaction_id":"ca09ac639d109d69","parent_id":"ca09ac639d109d69","trace_id":"0fd056cc0fb4931f05a686f644a0216e","subtype":"postgresql","action":"query","timestamp":1646055511941849,"duration":11.119,"context":{"db":{"statement":"SELECT c.* FROM customers c LEFT JOIN orders o ON c.id=o.customer_id LEFT JOIN order_lines l ON o.id=l.order_id LEFT JOIN products p ON l.product_id=p.id WHERE p.id=$1 LIMIT $2","type":"sql"},"destination":{"service":{"name":"postgresql","resource":"postgresql","type":"db"},"address":"postgres","port":5432}},"stacktrace":[{"filename":"node_modules/pg-pool/index.js","lineno":406,"function":"PendingItem.callback","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":298,"function":"_acquireClient","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":146,"function":"_pulseQueue","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":179,"function":"","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"internal/process/task_queues.js","lineno":77,"function":"processTicksAndRejections","library_frame":true,"abs_path":"internal/process/task_queues.js"}],"sync":false,"outcome":"success","sample_rate":1}} @@ -315,7 +297,6 @@ {"span":{"name":"SELECT FROM customers","type":"db","id":"7163b948a1f41986","transaction_id":"39a4a1404c00190f","parent_id":"39a4a1404c00190f","trace_id":"697b18e626ec527e403e88c50ab564b2","subtype":"postgresql","action":"query","timestamp":1646055521080224,"duration":98.003,"context":{"db":{"statement":"SELECT c.* FROM customers c LEFT JOIN orders o ON c.id=o.customer_id LEFT JOIN order_lines l ON o.id=l.order_id LEFT JOIN products p ON l.product_id=p.id WHERE p.id=$1 LIMIT $2","type":"sql"},"destination":{"service":{"name":"postgresql","resource":"postgresql","type":"db"},"address":"postgres","port":5432}},"stacktrace":[{"filename":"node_modules/pg-pool/index.js","lineno":406,"function":"PendingItem.callback","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":298,"function":"_acquireClient","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":146,"function":"_pulseQueue","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":179,"function":"","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"internal/process/task_queues.js","lineno":77,"function":"processTicksAndRejections","library_frame":true,"abs_path":"internal/process/task_queues.js"}],"sync":false,"outcome":"success","sample_rate":1}} {"transaction":{"name":"GET /api","type":"request","result":"HTTP 2xx","id":"ae28172362ed9e88","trace_id":"50d29d94586a5e13054bfa0fdc8d1ce4","parent_id":"ce1eec01548223db","duration":72.179,"timestamp":1646055521226019,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/products/top","protocol":"http:","hostname":"opbeans-go","port":"3000","pathname":"/api/products/top","full":"http://opbeans-go:3000/api/products/top"},"headers":{"host":"opbeans-go:3000","user-agent":"http.rb/5.0.4","elastic-apm-traceparent":"00-50d29d94586a5e13054bfa0fdc8d1ce4-ce1eec01548223db-01","traceparent":"00-50d29d94586a5e13054bfa0fdc8d1ce4-ce1eec01548223db-01","tracestate":"es=s:1.0","x-forwarded-for":"172.23.0.12","accept-encoding":"gzip"},"socket":{"remote_address":"::ffff:172.23.0.9"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","x-frame-options":"SAMEORIGIN","x-xss-protection":"1; mode=block","x-content-type-options":"nosniff","x-download-options":"noopen","x-permitted-cross-domain-policies":"none","referrer-policy":"strict-origin-when-cross-origin","content-type":"application/json; charset=utf-8","etag":"W/\"6b84b8cfae4908f93f790804f2c9e7c9\"","cache-control":"max-age=0, private, must-revalidate","x-request-id":"b2bbe5c4-12be-4b0a-9ce5-872499b62127","x-runtime":"0.033396","connection":"close","transfer-encoding":"chunked","date":"Mon, 28 Feb 2022 13:38:41 GMT"}}},"span_count":{"started":1},"outcome":"success","sample_rate":1}} {"span":{"name":"GET opbeans-ruby:3000","type":"external","id":"80a98f2794c19def","transaction_id":"ae28172362ed9e88","parent_id":"ae28172362ed9e88","trace_id":"50d29d94586a5e13054bfa0fdc8d1ce4","subtype":"http","action":"GET","timestamp":1646055521234896,"duration":58.59,"context":{"http":{"method":"GET","status_code":200,"url":"http://opbeans-ruby:3000/api/products/top"},"destination":{"service":{"name":"http://opbeans-ruby:3000","resource":"opbeans-ruby:3000","type":"external"},"address":"opbeans-ruby","port":3000}},"stacktrace":[{"filename":"server.js","lineno":101,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" req.log.debug('proxying request: %s => %s:%s', req.originalUrl, opts.hostname, opts.port + opts.path)",""],"context_line":" const clientReq = http.request(opts)","post_context":[""," clientReq.on('response', clientRes => {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":641,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":260,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js"},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}],"sync":false,"outcome":"success","sample_rate":1}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"framework":{"name":"express","version":"4.17.3"},"version":"1.0.0"},"process":{"pid":276,"ppid":1,"title":"node /app/server.js","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"transaction":{"name":"GET /api","type":"request","result":"HTTP 2xx","id":"bd7e4772c6c35e54","trace_id":"99cb842970d61ba3e69e274e42fde9b2","duration":158.005,"timestamp":1646055521473030,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/orders/137","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/api/orders/137","full":"http://opbeans-node:3000/api/orders/137"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-length":"311","content-type":"application/json","date":"Mon, 28 Feb 2022 13:38:41 GMT","referrer-policy":"same-origin","server":"gunicorn","vary":"Cookie","x-content-type-options":"nosniff","x-frame-options":"DENY","connection":"close"}}},"span_count":{"started":1},"outcome":"success","sample_rate":1}} {"span":{"name":"GET opbeans-go:3000","type":"external","id":"3684858e48f04fc8","transaction_id":"bd7e4772c6c35e54","parent_id":"bd7e4772c6c35e54","trace_id":"99cb842970d61ba3e69e274e42fde9b2","subtype":"http","action":"GET","timestamp":1646055521483453,"duration":97.497,"context":{"http":{"method":"GET","status_code":200,"url":"http://opbeans-go:3000/api/orders/137"},"destination":{"service":{"name":"http://opbeans-go:3000","resource":"opbeans-go:3000","type":"external"},"address":"opbeans-go","port":3000}},"stacktrace":[{"filename":"server.js","lineno":101,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" req.log.debug('proxying request: %s => %s:%s', req.originalUrl, opts.hostname, opts.port + opts.path)",""],"context_line":" const clientReq = http.request(opts)","post_context":[""," clientReq.on('response', clientRes => {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":641,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":260,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js"},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}],"sync":false,"outcome":"success","sample_rate":1}} {"transaction":{"name":"GET /api","type":"request","result":"HTTP 2xx","id":"498785ad75c85b57","trace_id":"2a87ad925f6dbea029fc5414926b3e54","parent_id":"6c12741376f3e5a7","duration":121.48,"timestamp":1646055521548025,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/products/3","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/api/products/3","full":"http://opbeans-node:3000/api/products/3"},"headers":{"host":"opbeans-node:3000","user-agent":"python-requests/2.27.1","accept-encoding":"gzip, deflate","accept":"*/*","connection":"keep-alive","traceparent":"00-2a87ad925f6dbea029fc5414926b3e54-6c12741376f3e5a7-01","elastic-apm-traceparent":"00-2a87ad925f6dbea029fc5414926b3e54-6c12741376f3e5a7-01","tracestate":"es=s:1.0"},"socket":{"remote_address":"::ffff:172.23.0.11"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","server":"gunicorn","date":"Mon, 28 Feb 2022 13:38:41 GMT","connection":"close","content-type":"application/json","x-frame-options":"DENY","content-length":"248","vary":"Cookie","x-content-type-options":"nosniff","referrer-policy":"same-origin"}}},"span_count":{"started":1},"outcome":"success","sample_rate":1}} @@ -422,14 +403,11 @@ {"transaction":{"name":"GET /api/types/:id","type":"request","result":"HTTP 2xx","id":"4c97f9e6214a22de","trace_id":"1abce10a08a704ff0d98188dfbeb98e3","parent_id":"bf758eadf2bc3497","duration":59.716,"timestamp":1646055529546031,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/types/1","protocol":"http:","hostname":"opbeans-go","port":"3000","pathname":"/api/types/1","full":"http://opbeans-go:3000/api/types/1"},"headers":{"host":"opbeans-go:3000","user-agent":"Python/3.7 aiohttp/3.3.2","accept":"*/*","accept-encoding":"gzip, deflate","elastic-apm-traceparent":"00-1abce10a08a704ff0d98188dfbeb98e3-bf758eadf2bc3497-01","traceparent":"00-1abce10a08a704ff0d98188dfbeb98e3-bf758eadf2bc3497-01","tracestate":"es=s:1","x-forwarded-for":"172.23.0.14"},"socket":{"remote_address":"::ffff:172.23.0.9"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"application/json; charset=utf-8","content-length":"217","etag":"W/\"d9-cebOOHODBQMZd1wt+ZZBaSPgQLQ\"","date":"Mon, 28 Feb 2022 13:38:49 GMT","connection":"keep-alive","keep-alive":"timeout=5"}}},"span_count":{"started":2},"outcome":"success","sample_rate":1}} {"span":{"name":"SELECT FROM products","type":"db","id":"7e4a593475d80bb1","transaction_id":"4c97f9e6214a22de","parent_id":"4c97f9e6214a22de","trace_id":"1abce10a08a704ff0d98188dfbeb98e3","subtype":"postgresql","action":"query","timestamp":1646055529568430,"duration":13.275,"context":{"db":{"statement":"SELECT id, name FROM products WHERE type_id=$1","type":"sql"},"destination":{"service":{"name":"postgresql","resource":"postgresql","type":"db"},"address":"postgres","port":5432}},"stacktrace":[{"filename":"node_modules/pg-pool/index.js","lineno":406,"function":"PendingItem.callback","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":298,"function":"_acquireClient","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":146,"function":"_pulseQueue","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":179,"function":"","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"internal/process/task_queues.js","lineno":77,"function":"processTicksAndRejections","library_frame":true,"abs_path":"internal/process/task_queues.js"}],"sync":false,"outcome":"success","sample_rate":1}} {"error":{"id":"10b7883a7904cfa35e8dd64735983c5f","timestamp":1646055529983000,"parent_id":"cd364f9c98663b3e","trace_id":"645e551060b676ae287e1fc95a423bd3","transaction_id":"cd364f9c98663b3e","transaction":{"name":"GET unknown route (unnamed)","type":"request","sampled":true},"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/throw-async-error","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/throw-async-error","full":"http://opbeans-node:3000/throw-async-error"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{},"headers_sent":false,"finished":false}},"exception":{"message":"this will not get captured by express","type":"Error","handled":false,"stacktrace":[{"filename":"server/coffee.js","lineno":42,"function":"","library_frame":false,"abs_path":"/app/server/coffee.js","pre_context":["app.get('/throw-async-error', function (req, res) {"," process.nextTick(function () {"],"context_line":" throw new Error('this will not get captured by express')","post_context":[" })","})"]},{"filename":"internal/process/task_queues.js","lineno":77,"function":"processTicksAndRejections","library_frame":true,"abs_path":"internal/process/task_queues.js"}]},"culprit":" (server/coffee.js)"}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"version":"1.0.0"},"process":{"pid":289,"ppid":1,"title":"node /app/node_modules/.bin/workload","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js","-f",".workload.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"error":{"id":"800c0a4e8431a0e8a50bc38c3bda7689","timestamp":1646055530174000,"context":{"user":{},"tags":{},"custom":{}},"exception":{"message":"socket hang up","type":"Error","handled":false,"code":"ECONNRESET","stacktrace":[{"filename":"internal/errors.js","lineno":639,"function":"connResetException","library_frame":true,"abs_path":"internal/errors.js"},{"filename":"_http_client.js","lineno":499,"function":"socketOnEnd","library_frame":true,"abs_path":"_http_client.js"},{"filename":"events.js","lineno":412,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"internal/streams/readable.js","lineno":1334,"function":"endReadableNT","library_frame":true,"abs_path":"internal/streams/readable.js"},{"filename":"internal/process/task_queues.js","lineno":82,"function":"processTicksAndRejections","library_frame":true,"abs_path":"internal/process/task_queues.js"}]},"culprit":"connResetException (internal/errors.js)"}} {"error":{"id":"5e0baa9c687647b8cb6694bc48965a9a","timestamp":1646055530197000,"context":{"user":{},"tags":{},"custom":{}},"exception":{"message":"socket hang up","type":"Error","handled":false,"code":"ECONNRESET","stacktrace":[{"filename":"internal/errors.js","lineno":639,"function":"connResetException","library_frame":true,"abs_path":"internal/errors.js"},{"filename":"_http_client.js","lineno":499,"function":"socketOnEnd","library_frame":true,"abs_path":"_http_client.js"},{"filename":"events.js","lineno":412,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"internal/streams/readable.js","lineno":1334,"function":"endReadableNT","library_frame":true,"abs_path":"internal/streams/readable.js"},{"filename":"internal/process/task_queues.js","lineno":82,"function":"processTicksAndRejections","library_frame":true,"abs_path":"internal/process/task_queues.js"}]},"culprit":"connResetException (internal/errors.js)"}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"framework":{"name":"express","version":"4.17.3"},"version":"1.0.0"},"process":{"pid":326,"ppid":1,"title":"node /app/server.js","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"metricset":{"samples":{"system.cpu.total.norm.pct":{"value":0.699537750385208},"system.memory.actual.free":{"value":7307767808},"system.memory.total":{"value":12544401408},"system.process.cpu.total.norm.pct":{"value":0},"system.process.cpu.system.norm.pct":{"value":0},"system.process.cpu.user.norm.pct":{"value":0},"system.process.memory.size":{"value":0},"system.process.memory.rss.bytes":{"value":0},"nodejs.handles.active":{"value":8},"nodejs.requests.active":{"value":11},"nodejs.eventloop.delay.avg.ms":{"value":0},"nodejs.memory.heap.allocated.bytes":{"value":55218176},"nodejs.memory.heap.used.bytes":{"value":28657136},"nodejs.memory.external.bytes":{"value":2509326},"nodejs.memory.arrayBuffers.bytes":{"value":793519}},"timestamp":1646055534436000,"tags":{"hostname":"698fd446b62a","env":"production"}}} {"transaction":{"name":"GET /*","type":"request","result":"HTTP 2xx","id":"0ada24d1447a011e","trace_id":"9f555c14a01f5411182ba74b8fbde823","parent_id":"3ae073b5963c7f8a","duration":65.948,"timestamp":1646055535637341,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/","full":"http://opbeans-node:3000/"},"headers":{"host":"opbeans-node:3000","user-agent":"Wget","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"text/html","content-length":"813","date":"Mon, 28 Feb 2022 13:38:55 GMT","connection":"close"}}},"span_count":{"started":0},"outcome":"success","sample_rate":1}} {"error":{"id":"222ecc7598dc025b37bf989ebae4888d","timestamp":1646055536676000,"parent_id":"687cd067696aac93","trace_id":"bd28a48c28748cd623749e883bc8793b","transaction_id":"687cd067696aac93","transaction":{"name":"GET unknown route (unnamed)","type":"request","sampled":true},"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/log-error","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/log-error","full":"http://opbeans-node:3000/log-error"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{},"headers_sent":false,"finished":false}},"exception":{"message":"foo","type":"Error","handled":true,"stacktrace":[{"filename":"server/coffee.js","lineno":17,"function":"","library_frame":false,"abs_path":"/app/server/coffee.js","pre_context":["","app.get('/log-error', function (req, res) {"],"context_line":" apm.captureError(new Error('foo'), function (err) {","post_context":[" if (err) {"," res.status(500).send('could not capture error: ' + err.message)"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/route.js","lineno":137,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" layer.handle_error(err, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/route.js","lineno":112,"function":"dispatch","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" req.route = this;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":281,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," if (route) {"],"context_line":" return layer.handle_request(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" req.originalUrl = req.originalUrl || req.url;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," function router(req, res, next) {"],"context_line":" router.handle(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":126,"function":"nextHook","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" function nextHook (err) {"," if (!err) req[symbols.staticFile] = false"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js","pre_context":[" }",""],"context_line":" next()","post_context":[" })",""]},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" // emit if listeners instead of responding"," if (hasListeners(this, 'error')) {"],"context_line":" return this.emit('error', createError(status, err, {","post_context":[" expose: false"," }))"]},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" case 'ENOENT':"," case 'ENOTDIR':"],"context_line":" this.error(404, error)","post_context":[" break"," default:"]},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (self._extensions.length <= i) {"," return err"],"context_line":" ? self.onStatError(err)","post_context":[" : self.error(404)"," }"]},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (err && err.code === 'ENOENT' && !extname(path) && path[path.length - 1] !== sep) {"," // not found, check extensions"],"context_line":" return next(err)","post_context":[" }"," if (err) return self.onStatError(err)"]},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}]},"culprit":" (server/coffee.js)"}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"framework":{"name":"express","version":"4.17.3"},"version":"1.0.0"},"process":{"pid":326,"ppid":1,"title":"node /app/server.js","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"transaction":{"name":"GET /log-error","type":"request","result":"HTTP 5xx","id":"687cd067696aac93","trace_id":"bd28a48c28748cd623749e883bc8793b","duration":100.909,"timestamp":1646055536669025,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/log-error","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/log-error","full":"http://opbeans-node:3000/log-error"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":500,"headers":{"x-powered-by":"Express","content-type":"text/html; charset=utf-8","content-length":"24","etag":"W/\"18-MS3VbhH7auHMzO0fUuNF6v14N/M\"","date":"Mon, 28 Feb 2022 13:38:56 GMT","connection":"close"}}},"span_count":{"started":0},"outcome":"failure","sample_rate":1}} {"transaction":{"name":"GET static file","type":"request","result":"HTTP 2xx","id":"f4cff5e6a1204384","trace_id":"ab15f5dbf7e2f6417ae22f78b88bde06","duration":19.935,"timestamp":1646055537174042,"sampled":true,"context":{"user":{},"tags":{},"custom":{},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/favicon.ico","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/favicon.ico","full":"http://opbeans-node:3000/favicon.ico"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","accept-ranges":"bytes","cache-control":"public, max-age=0","last-modified":"Sat, 11 Dec 2021 17:17:01 GMT","etag":"W/\"3aee-17daa7f7ac8\"","content-type":"image/x-icon","content-length":"15086","date":"Mon, 28 Feb 2022 13:38:57 GMT","connection":"close"}}},"span_count":{"started":0},"outcome":"success","sample_rate":1}} {"span":{"name":"GET","type":"cache","id":"1c9b6b0c37ceb13d","transaction_id":"826ff0f165dd4687","parent_id":"826ff0f165dd4687","trace_id":"d6fa0304efbedac7f0d9c7b5f80b4414","subtype":"redis","action":null,"timestamp":1646055538196832,"duration":5.751,"context":{"destination":{"service":{"name":"redis","resource":"redis","type":"cache"},"address":"redis","port":6379}},"sync":false,"outcome":"success","sample_rate":1}} @@ -440,7 +418,6 @@ {"transaction":{"name":"GET static file","type":"request","result":"HTTP 2xx","id":"9a0b3535f8fef2c5","trace_id":"a53b998895a3ef636a506727b698e6d8","duration":26.381,"timestamp":1646055539184077,"sampled":true,"context":{"user":{},"tags":{},"custom":{},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/favicon.ico","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/favicon.ico","full":"http://opbeans-node:3000/favicon.ico"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","accept-ranges":"bytes","cache-control":"public, max-age=0","last-modified":"Sat, 11 Dec 2021 17:17:01 GMT","etag":"W/\"3aee-17daa7f7ac8\"","content-type":"image/x-icon","content-length":"15086","date":"Mon, 28 Feb 2022 13:38:59 GMT","connection":"close"}}},"span_count":{"started":0},"outcome":"success","sample_rate":1}} {"transaction":{"name":"OPTIONS unknown route","type":"request","result":"HTTP 2xx","id":"c7d6a6cbcb7277b6","trace_id":"0656fd3a23af3d5a48d290990abfccdb","duration":10.834,"timestamp":1646055539676026,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"OPTIONS","url":{"raw":"/","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/","full":"http://opbeans-node:3000/"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","content-length":"0","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","allow":"GET,HEAD","content-type":"text/html; charset=utf-8","content-length":"8","etag":"W/\"8-ZRAf8oNBS3Bjb/SU2GYZCmbtmXg\"","date":"Mon, 28 Feb 2022 13:38:59 GMT","connection":"close"}}},"span_count":{"started":0},"outcome":"success","sample_rate":1}} {"error":{"id":"07483415552b71986e14d54aa51ac22f","timestamp":1646055540185000,"parent_id":"45d81fbb9254ea6e","trace_id":"16f85f752f7d6e5e5948ad507bb651e1","transaction_id":"45d81fbb9254ea6e","transaction":{"name":"GET unknown route (unnamed)","type":"request","sampled":true},"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/log-message","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/log-message","full":"http://opbeans-node:3000/log-message"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{},"headers_sent":false,"finished":false}},"log":{"message":"this is a string","stacktrace":[{"filename":"server/coffee.js","lineno":27,"function":"","library_frame":false,"abs_path":"/app/server/coffee.js","pre_context":["","app.get('/log-message', function (req, res) {"],"context_line":" apm.captureError('this is a string', function (err) {","post_context":[" if (err) {"," res.status(500).send('could not capture error: ' + err.message)"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/route.js","lineno":137,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" layer.handle_error(err, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/route.js","lineno":112,"function":"dispatch","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" req.route = this;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":281,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," if (route) {"],"context_line":" return layer.handle_request(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" req.originalUrl = req.originalUrl || req.url;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," function router(req, res, next) {"],"context_line":" router.handle(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":126,"function":"nextHook","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" function nextHook (err) {"," if (!err) req[symbols.staticFile] = false"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js","pre_context":[" }",""],"context_line":" next()","post_context":[" })",""]},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" // emit if listeners instead of responding"," if (hasListeners(this, 'error')) {"],"context_line":" return this.emit('error', createError(status, err, {","post_context":[" expose: false"," }))"]},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" case 'ENOENT':"," case 'ENOTDIR':"],"context_line":" this.error(404, error)","post_context":[" break"," default:"]},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (self._extensions.length <= i) {"," return err"],"context_line":" ? self.onStatError(err)","post_context":[" : self.error(404)"," }"]},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (err && err.code === 'ENOENT' && !extname(path) && path[path.length - 1] !== sep) {"," // not found, check extensions"],"context_line":" return next(err)","post_context":[" }"," if (err) return self.onStatError(err)"]},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}]}}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"framework":{"name":"express","version":"4.17.3"},"version":"1.0.0"},"process":{"pid":326,"ppid":1,"title":"node /app/server.js","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"transaction":{"name":"GET /log-message","type":"request","result":"HTTP 5xx","id":"45d81fbb9254ea6e","trace_id":"16f85f752f7d6e5e5948ad507bb651e1","duration":43.318,"timestamp":1646055540177035,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/log-message","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/log-message","full":"http://opbeans-node:3000/log-message"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":500,"headers":{"x-powered-by":"Express","content-type":"text/html; charset=utf-8","content-length":"24","etag":"W/\"18-MS3VbhH7auHMzO0fUuNF6v14N/M\"","date":"Mon, 28 Feb 2022 13:39:00 GMT","connection":"close"}}},"span_count":{"started":0},"outcome":"failure","sample_rate":1}} {"span":{"name":"GET","type":"cache","id":"2c7a90c2066eb121","transaction_id":"6082af4d9c770efc","parent_id":"6082af4d9c770efc","trace_id":"46843c8798926899b0ebb14b45433637","subtype":"redis","action":null,"timestamp":1646055540681171,"duration":2.117,"context":{"destination":{"service":{"name":"redis","resource":"redis","type":"cache"},"address":"redis","port":6379}},"sync":false,"outcome":"success","sample_rate":1}} {"span":{"name":"SELECT FROM products","type":"db","id":"fe538bb175d133dc","transaction_id":"6082af4d9c770efc","parent_id":"6082af4d9c770efc","trace_id":"46843c8798926899b0ebb14b45433637","subtype":"postgresql","action":"query","timestamp":1646055540686226,"duration":4.889,"context":{"db":{"statement":"SELECT p.id, p.sku, p.name, p.stock, t.name AS type_name FROM products p LEFT JOIN product_types t ON p.type_id=t.id","type":"sql"},"destination":{"service":{"name":"postgresql","resource":"postgresql","type":"db"},"address":"postgres","port":5432}},"sync":false,"outcome":"success","sample_rate":1}} @@ -456,7 +433,6 @@ {"span":{"name":"SELECT FROM products","type":"db","id":"5eae7db74b987aab","transaction_id":"867c4e53b6bb8dcc","parent_id":"867c4e53b6bb8dcc","trace_id":"11b15fa8fb743d94fb835a75c3e0f865","subtype":"postgresql","action":"query","timestamp":1646055542233099,"duration":12.678,"context":{"db":{"statement":"SELECT cost, selling_price FROM products WHERE id=$1","type":"sql"},"destination":{"service":{"name":"postgresql","resource":"postgresql","type":"db"},"address":"postgres","port":5432}},"stacktrace":[{"filename":"node_modules/pg-pool/index.js","lineno":406,"function":"PendingItem.callback","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":298,"function":"_acquireClient","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":146,"function":"_pulseQueue","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":179,"function":"","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"internal/process/task_queues.js","lineno":77,"function":"processTicksAndRejections","library_frame":true,"abs_path":"internal/process/task_queues.js"}],"sync":false,"outcome":"success","sample_rate":1}} {"span":{"name":"SELECT FROM products","type":"db","id":"35ff76d53b23b50c","transaction_id":"867c4e53b6bb8dcc","parent_id":"867c4e53b6bb8dcc","trace_id":"11b15fa8fb743d94fb835a75c3e0f865","subtype":"postgresql","action":"query","timestamp":1646055542234763,"duration":12.945,"context":{"db":{"statement":"SELECT cost, selling_price FROM products WHERE id=$1","type":"sql"},"destination":{"service":{"name":"postgresql","resource":"postgresql","type":"db"},"address":"postgres","port":5432}},"stacktrace":[{"filename":"node_modules/pg-pool/index.js","lineno":406,"function":"PendingItem.callback","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":298,"function":"_acquireClient","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":146,"function":"_pulseQueue","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":179,"function":"","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"internal/process/task_queues.js","lineno":77,"function":"processTicksAndRejections","library_frame":true,"abs_path":"internal/process/task_queues.js"}],"sync":false,"outcome":"success","sample_rate":1}} {"error":{"id":"37bf736001554cca3ead6ea6e7c3b0ff","timestamp":1646055542699000,"parent_id":"e2bd49f16f205cec","trace_id":"1367c3093b72caaf6cb65599fd682e70","transaction_id":"e2bd49f16f205cec","transaction":{"name":"GET unknown route (unnamed)","type":"request","sampled":true},"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/log-error","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/log-error","full":"http://opbeans-node:3000/log-error"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{},"headers_sent":false,"finished":false}},"exception":{"message":"foo","type":"Error","handled":true,"stacktrace":[{"filename":"server/coffee.js","lineno":17,"function":"","library_frame":false,"abs_path":"/app/server/coffee.js","pre_context":["","app.get('/log-error', function (req, res) {"],"context_line":" apm.captureError(new Error('foo'), function (err) {","post_context":[" if (err) {"," res.status(500).send('could not capture error: ' + err.message)"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/route.js","lineno":137,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" layer.handle_error(err, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/route.js","lineno":112,"function":"dispatch","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" req.route = this;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":281,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," if (route) {"],"context_line":" return layer.handle_request(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" req.originalUrl = req.originalUrl || req.url;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," function router(req, res, next) {"],"context_line":" router.handle(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":126,"function":"nextHook","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" function nextHook (err) {"," if (!err) req[symbols.staticFile] = false"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js","pre_context":[" }",""],"context_line":" next()","post_context":[" })",""]},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" // emit if listeners instead of responding"," if (hasListeners(this, 'error')) {"],"context_line":" return this.emit('error', createError(status, err, {","post_context":[" expose: false"," }))"]},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" case 'ENOENT':"," case 'ENOTDIR':"],"context_line":" this.error(404, error)","post_context":[" break"," default:"]},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (self._extensions.length <= i) {"," return err"],"context_line":" ? self.onStatError(err)","post_context":[" : self.error(404)"," }"]},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (err && err.code === 'ENOENT' && !extname(path) && path[path.length - 1] !== sep) {"," // not found, check extensions"],"context_line":" return next(err)","post_context":[" }"," if (err) return self.onStatError(err)"]},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}]},"culprit":" (server/coffee.js)"}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"framework":{"name":"express","version":"4.17.3"},"version":"1.0.0"},"process":{"pid":326,"ppid":1,"title":"node /app/server.js","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"transaction":{"name":"GET /log-error","type":"request","result":"HTTP 5xx","id":"e2bd49f16f205cec","trace_id":"1367c3093b72caaf6cb65599fd682e70","duration":69.436,"timestamp":1646055542684031,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/log-error","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/log-error","full":"http://opbeans-node:3000/log-error"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":500,"headers":{"x-powered-by":"Express","content-type":"text/html; charset=utf-8","content-length":"24","etag":"W/\"18-MS3VbhH7auHMzO0fUuNF6v14N/M\"","date":"Mon, 28 Feb 2022 13:39:02 GMT","connection":"close"}}},"span_count":{"started":0},"outcome":"failure","sample_rate":1}} {"transaction":{"name":"GET /is-it-coffee-time","type":"request","result":"HTTP 5xx","id":"517be5a19c3e65a2","trace_id":"89d0e5238ff7648e0e1cadf9c54697e1","duration":20.55,"timestamp":1646055543185055,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/is-it-coffee-time","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/is-it-coffee-time","full":"http://opbeans-node:3000/is-it-coffee-time"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":500,"headers":{"x-powered-by":"Express","content-security-policy":"default-src 'none'","x-content-type-options":"nosniff","content-type":"text/html; charset=utf-8","content-length":"148","date":"Mon, 28 Feb 2022 13:39:03 GMT","connection":"close"}}},"span_count":{"started":0},"outcome":"failure","sample_rate":1}} {"error":{"id":"dd2fe59ae8a1837d60b08e0753de70c1","timestamp":1646055543195000,"parent_id":"517be5a19c3e65a2","trace_id":"89d0e5238ff7648e0e1cadf9c54697e1","transaction_id":"517be5a19c3e65a2","transaction":{"name":"GET /is-it-coffee-time","type":"request","sampled":true},"context":{"user":{},"tags":{},"custom":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/is-it-coffee-time","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/is-it-coffee-time","full":"http://opbeans-node:3000/is-it-coffee-time"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":500,"headers":{"x-powered-by":"Express","content-security-policy":"default-src 'none'","x-content-type-options":"nosniff","content-type":"text/html; charset=utf-8","content-length":"148","date":"Mon, 28 Feb 2022 13:39:03 GMT","connection":"close"},"headers_sent":true,"finished":true}},"exception":{"message":"Cannot read property 'level' of undefined","type":"TypeError","handled":true,"stacktrace":[{"filename":"server/coffee.js","lineno":9,"function":"","library_frame":false,"abs_path":"/app/server/coffee.js","pre_context":["","app.get('/is-it-coffee-time', function (req, res) {"],"context_line":" if (req.paarms.level === 11) {","post_context":[" res.send('Of course!')"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/route.js","lineno":137,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" layer.handle_error(err, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/route.js","lineno":112,"function":"dispatch","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" req.route = this;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":281,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," if (route) {"],"context_line":" return layer.handle_request(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" req.originalUrl = req.originalUrl || req.url;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," function router(req, res, next) {"],"context_line":" router.handle(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":126,"function":"nextHook","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" function nextHook (err) {"," if (!err) req[symbols.staticFile] = false"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js","pre_context":[" }",""],"context_line":" next()","post_context":[" })",""]},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" // emit if listeners instead of responding"," if (hasListeners(this, 'error')) {"],"context_line":" return this.emit('error', createError(status, err, {","post_context":[" expose: false"," }))"]},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" case 'ENOENT':"," case 'ENOTDIR':"],"context_line":" this.error(404, error)","post_context":[" break"," default:"]},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (self._extensions.length <= i) {"," return err"],"context_line":" ? self.onStatError(err)","post_context":[" : self.error(404)"," }"]},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (err && err.code === 'ENOENT' && !extname(path) && path[path.length - 1] !== sep) {"," // not found, check extensions"],"context_line":" return next(err)","post_context":[" }"," if (err) return self.onStatError(err)"]},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}]},"culprit":" (server/coffee.js)"}} @@ -475,9 +451,7 @@ {"span":{"name":"GET opbeans-python:3000","type":"external","id":"e00e8e16b659094d","transaction_id":"626e35d572384993","parent_id":"626e35d572384993","trace_id":"f3ff78c40ba4b826d64a764be0c1158d","subtype":"http","action":"GET","timestamp":1646055543704180,"duration":1145.476,"context":{"http":{"method":"GET","status_code":200,"url":"http://opbeans-python:3000/api/customers"},"destination":{"service":{"name":"http://opbeans-python:3000","resource":"opbeans-python:3000","type":"external"},"address":"opbeans-python","port":3000}},"stacktrace":[{"filename":"server.js","lineno":101,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" req.log.debug('proxying request: %s => %s:%s', req.originalUrl, opts.hostname, opts.port + opts.path)",""],"context_line":" const clientReq = http.request(opts)","post_context":[""," clientReq.on('response', clientRes => {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":641,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":260,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js"},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}],"sync":false,"outcome":"success","sample_rate":1}} {"span":{"name":"GET opbeans-go:3000","type":"external","id":"158dc97a7583a9f6","transaction_id":"0f81794dda73fafa","parent_id":"0f81794dda73fafa","trace_id":"f4d0628df359cc52ea3ca87f2aa16438","subtype":"http","action":"GET","timestamp":1646055544183902,"duration":731.62,"context":{"http":{"method":"GET","status_code":200,"url":"http://opbeans-go:3000/api/products/5/customers"},"destination":{"service":{"name":"http://opbeans-go:3000","resource":"opbeans-go:3000","type":"external"},"address":"opbeans-go","port":3000}},"stacktrace":[{"filename":"server.js","lineno":101,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" req.log.debug('proxying request: %s => %s:%s', req.originalUrl, opts.hostname, opts.port + opts.path)",""],"context_line":" const clientReq = http.request(opts)","post_context":[""," clientReq.on('response', clientRes => {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":641,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":260,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js"},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}],"sync":false,"outcome":"success","sample_rate":1}} {"error":{"id":"29caf44d5e5717bb97a7e54ac0035531","timestamp":1646055544954000,"parent_id":"5920bb952ea4bab2","trace_id":"9080983ee74a2a472a892aa4774dc7e3","transaction_id":"5920bb952ea4bab2","transaction":{"name":"GET unknown route (unnamed)","type":"request","sampled":true},"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/log-error","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/log-error","full":"http://opbeans-node:3000/log-error"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{},"headers_sent":false,"finished":false}},"exception":{"message":"foo","type":"Error","handled":true,"stacktrace":[{"filename":"server/coffee.js","lineno":17,"function":"","library_frame":false,"abs_path":"/app/server/coffee.js","pre_context":["","app.get('/log-error', function (req, res) {"],"context_line":" apm.captureError(new Error('foo'), function (err) {","post_context":[" if (err) {"," res.status(500).send('could not capture error: ' + err.message)"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/route.js","lineno":137,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" layer.handle_error(err, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/route.js","lineno":112,"function":"dispatch","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" req.route = this;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":281,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," if (route) {"],"context_line":" return layer.handle_request(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" req.originalUrl = req.originalUrl || req.url;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," function router(req, res, next) {"],"context_line":" router.handle(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":126,"function":"nextHook","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" function nextHook (err) {"," if (!err) req[symbols.staticFile] = false"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js","pre_context":[" }",""],"context_line":" next()","post_context":[" })",""]},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" // emit if listeners instead of responding"," if (hasListeners(this, 'error')) {"],"context_line":" return this.emit('error', createError(status, err, {","post_context":[" expose: false"," }))"]},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" case 'ENOENT':"," case 'ENOTDIR':"],"context_line":" this.error(404, error)","post_context":[" break"," default:"]},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (self._extensions.length <= i) {"," return err"],"context_line":" ? self.onStatError(err)","post_context":[" : self.error(404)"," }"]},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (err && err.code === 'ENOENT' && !extname(path) && path[path.length - 1] !== sep) {"," // not found, check extensions"],"context_line":" return next(err)","post_context":[" }"," if (err) return self.onStatError(err)"]},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}]},"culprit":" (server/coffee.js)"}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"version":"1.0.0"},"process":{"pid":339,"ppid":1,"title":"node /app/node_modules/.bin/workload","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js","-f",".workload.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"metricset":{"samples":{"system.cpu.total.norm.pct":{"value":0.5945945945945946},"system.memory.actual.free":{"value":7271424000},"system.memory.total":{"value":12544401408},"system.process.cpu.total.norm.pct":{"value":0},"system.process.cpu.system.norm.pct":{"value":0},"system.process.cpu.user.norm.pct":{"value":0},"system.process.memory.size":{"value":0},"system.process.memory.rss.bytes":{"value":0},"nodejs.handles.active":{"value":7},"nodejs.requests.active":{"value":10},"nodejs.eventloop.delay.avg.ms":{"value":0},"nodejs.memory.heap.allocated.bytes":{"value":33984512},"nodejs.memory.heap.used.bytes":{"value":15766832},"nodejs.memory.external.bytes":{"value":1962260},"nodejs.memory.arrayBuffers.bytes":{"value":253468}},"timestamp":1646055535692000,"tags":{"hostname":"698fd446b62a","env":"production"}}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"framework":{"name":"express","version":"4.17.3"},"version":"1.0.0"},"process":{"pid":326,"ppid":1,"title":"node /app/server.js","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"transaction":{"name":"GET /api/products/:id","type":"request","result":"HTTP 2xx","id":"dc08530df1c50ff6","trace_id":"1a86c3632420e69917d05e919e9f9f61","parent_id":"25e1b944ef75e85a","duration":41.711,"timestamp":1646055544957016,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/products/4","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/api/products/4","full":"http://opbeans-node:3000/api/products/4"},"headers":{"host":"opbeans-node:3000","user-agent":"python-requests/2.27.1","accept-encoding":"gzip, deflate","accept":"*/*","connection":"keep-alive","traceparent":"00-1a86c3632420e69917d05e919e9f9f61-25e1b944ef75e85a-01","elastic-apm-traceparent":"00-1a86c3632420e69917d05e919e9f9f61-25e1b944ef75e85a-01","tracestate":"es=s:1.0"},"socket":{"remote_address":"::ffff:172.23.0.11"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"application/json; charset=utf-8","content-length":"243","etag":"W/\"f3-6sVO4eOixKeSqLsiOclAUoIfJnQ\"","date":"Mon, 28 Feb 2022 13:39:04 GMT","connection":"keep-alive","keep-alive":"timeout=5"}}},"span_count":{"started":1},"outcome":"success","sample_rate":1}} {"span":{"name":"SELECT FROM products","type":"db","id":"e4dac0045c3b6633","transaction_id":"dc08530df1c50ff6","parent_id":"dc08530df1c50ff6","trace_id":"1a86c3632420e69917d05e919e9f9f61","subtype":"postgresql","action":"query","timestamp":1646055544968268,"duration":21.119,"context":{"db":{"statement":"SELECT p.*, t.name AS type_name FROM products p LEFT JOIN product_types t ON p.type_id=t.id WHERE p.id=$1","type":"sql"},"destination":{"service":{"name":"postgresql","resource":"postgresql","type":"db"},"address":"postgres","port":5432}},"stacktrace":[{"filename":"node_modules/pg-pool/index.js","lineno":406,"function":"PendingItem.callback","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":298,"function":"_acquireClient","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":146,"function":"_pulseQueue","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":179,"function":"","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"internal/process/task_queues.js","lineno":77,"function":"processTicksAndRejections","library_frame":true,"abs_path":"internal/process/task_queues.js"}],"sync":false,"outcome":"success","sample_rate":1}} {"transaction":{"name":"GET /api","type":"request","result":"HTTP 2xx","id":"620aaf64d5d826d2","trace_id":"1a86c3632420e69917d05e919e9f9f61","parent_id":"4857089c5c5a0ad3","duration":1267.127,"timestamp":1646055543756027,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/products/4","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/api/products/4","full":"http://opbeans-node:3000/api/products/4"},"headers":{"host":"opbeans-node:3000","user-agent":"python-requests/2.27.1","accept-encoding":"gzip, deflate","accept":"*/*","connection":"keep-alive","traceparent":"00-1a86c3632420e69917d05e919e9f9f61-4857089c5c5a0ad3-01","elastic-apm-traceparent":"00-1a86c3632420e69917d05e919e9f9f61-4857089c5c5a0ad3-01","tracestate":"es=s:1.0"},"socket":{"remote_address":"::ffff:172.23.0.11"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"application/json; charset=utf-8","connection":"close","transfer-encoding":"chunked","date":"Mon, 28 Feb 2022 13:39:05 GMT"}}},"span_count":{"started":1},"outcome":"success","sample_rate":1}} @@ -578,7 +552,6 @@ {"transaction":{"name":"Process payment","type":"Worker","result":"success","id":"65c1dc5e9e48f7d2","trace_id":"4d64e896d66883f8c9efc0d382c27d3f","duration":633.091,"timestamp":1646055553247054,"sampled":true,"context":{"user":{},"tags":{},"custom":{},"service":{},"cloud":{},"message":{}},"span_count":{"started":2},"outcome":"unknown","sample_rate":1}} {"span":{"name":"Reserve funds","type":"custom","id":"8292bba551bc37a4","transaction_id":"65c1dc5e9e48f7d2","parent_id":"65c1dc5e9e48f7d2","trace_id":"4d64e896d66883f8c9efc0d382c27d3f","subtype":null,"action":null,"timestamp":1646055553700356,"duration":168.133,"stacktrace":[{"filename":"worker.js","lineno":63,"function":"performSubTask","library_frame":false,"abs_path":"/app/worker.js","pre_context":[" if (!running) return",""],"context_line":" const span = apm.startSpan(name)","post_context":[""," setTimeout(function () {"]},{"filename":"worker.js","lineno":52,"function":"performSubTasks","library_frame":false,"abs_path":"/app/worker.js","pre_context":[" if (!running) return",""],"context_line":" performSubTask(tasks.shift(), function () {","post_context":[" if (tasks.length === 0) return cb()"," setTimeout(function () {"]},{"filename":"worker.js","lineno":55,"function":"Timeout._onTimeout","library_frame":false,"abs_path":"/app/worker.js","pre_context":[" if (tasks.length === 0) return cb()"," setTimeout(function () {"],"context_line":" performSubTasks(tasks, cb)","post_context":[" }, Math.random() * 20).unref()"," })"]},{"filename":"internal/timers.js","lineno":557,"function":"listOnTimeout","library_frame":true,"abs_path":"internal/timers.js"},{"filename":"internal/timers.js","lineno":500,"function":"processTimers","library_frame":true,"abs_path":"internal/timers.js"}],"sync":false,"outcome":"success","sample_rate":1}} {"error":{"id":"2882fa5e64a8d03c84666bcafe9df9bb","timestamp":1646055554245000,"parent_id":"e0daf99362f7a8eb","trace_id":"1259899decf8473370763c5b4752f5d5","transaction_id":"e0daf99362f7a8eb","transaction":{"name":"GET unknown route (unnamed)","type":"request","sampled":true},"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/log-message","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/log-message","full":"http://opbeans-node:3000/log-message"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{},"headers_sent":false,"finished":false}},"log":{"message":"this is a string","stacktrace":[{"filename":"server/coffee.js","lineno":27,"function":"","library_frame":false,"abs_path":"/app/server/coffee.js","pre_context":["","app.get('/log-message', function (req, res) {"],"context_line":" apm.captureError('this is a string', function (err) {","post_context":[" if (err) {"," res.status(500).send('could not capture error: ' + err.message)"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/route.js","lineno":137,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" layer.handle_error(err, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/route.js","lineno":112,"function":"dispatch","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" req.route = this;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":281,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," if (route) {"],"context_line":" return layer.handle_request(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" req.originalUrl = req.originalUrl || req.url;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," function router(req, res, next) {"],"context_line":" router.handle(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":126,"function":"nextHook","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" function nextHook (err) {"," if (!err) req[symbols.staticFile] = false"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js","pre_context":[" }",""],"context_line":" next()","post_context":[" })",""]},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" // emit if listeners instead of responding"," if (hasListeners(this, 'error')) {"],"context_line":" return this.emit('error', createError(status, err, {","post_context":[" expose: false"," }))"]},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" case 'ENOENT':"," case 'ENOTDIR':"],"context_line":" this.error(404, error)","post_context":[" break"," default:"]},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (self._extensions.length <= i) {"," return err"],"context_line":" ? self.onStatError(err)","post_context":[" : self.error(404)"," }"]},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (err && err.code === 'ENOENT' && !extname(path) && path[path.length - 1] !== sep) {"," // not found, check extensions"],"context_line":" return next(err)","post_context":[" }"," if (err) return self.onStatError(err)"]},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}]}}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"framework":{"name":"express","version":"4.17.3"},"version":"1.0.0"},"process":{"pid":326,"ppid":1,"title":"node /app/server.js","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"transaction":{"name":"GET /log-message","type":"request","result":"HTTP 5xx","id":"e0daf99362f7a8eb","trace_id":"1259899decf8473370763c5b4752f5d5","duration":235.5,"timestamp":1646055554221044,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/log-message","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/log-message","full":"http://opbeans-node:3000/log-message"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":500,"headers":{"x-powered-by":"Express","content-type":"text/html; charset=utf-8","content-length":"24","etag":"W/\"18-MS3VbhH7auHMzO0fUuNF6v14N/M\"","date":"Mon, 28 Feb 2022 13:39:14 GMT","connection":"close"}}},"span_count":{"started":0},"outcome":"failure","sample_rate":1}} {"transaction":{"name":"GET /api","type":"request","result":"HTTP 2xx","id":"2bacadaccb3b417b","trace_id":"5905c6febf50b2a1601c7bcf810c6abc","parent_id":"89c7437e2f06befe","duration":5366.808,"timestamp":1646055549483029,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/products/2/customers","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/api/products/2/customers","full":"http://opbeans-node:3000/api/products/2/customers"},"headers":{"host":"opbeans-node:3000","user-agent":"python-requests/2.27.1","accept-encoding":"gzip, deflate","accept":"*/*","connection":"keep-alive","traceparent":"00-5905c6febf50b2a1601c7bcf810c6abc-89c7437e2f06befe-01","elastic-apm-traceparent":"00-5905c6febf50b2a1601c7bcf810c6abc-89c7437e2f06befe-01","tracestate":"es=s:1"},"socket":{"remote_address":"::ffff:172.23.0.11"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"application/json; charset=utf-8","connection":"close","transfer-encoding":"chunked","date":"Mon, 28 Feb 2022 13:39:14 GMT"}}},"span_count":{"started":1},"outcome":"success","sample_rate":1}} {"span":{"name":"GET opbeans-ruby:3000","type":"external","id":"d03d6dff456abea7","transaction_id":"2bacadaccb3b417b","parent_id":"2bacadaccb3b417b","trace_id":"5905c6febf50b2a1601c7bcf810c6abc","subtype":"http","action":"GET","timestamp":1646055549487450,"duration":5335.154,"context":{"http":{"method":"GET","status_code":200,"url":"http://opbeans-ruby:3000/api/products/2/customers"},"destination":{"service":{"name":"http://opbeans-ruby:3000","resource":"opbeans-ruby:3000","type":"external"},"address":"opbeans-ruby","port":3000}},"stacktrace":[{"filename":"server.js","lineno":101,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" req.log.debug('proxying request: %s => %s:%s', req.originalUrl, opts.hostname, opts.port + opts.path)",""],"context_line":" const clientReq = http.request(opts)","post_context":[""," clientReq.on('response', clientRes => {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":641,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":260,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js"},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}],"sync":false,"outcome":"success","sample_rate":1}} @@ -761,7 +734,6 @@ {"span":{"name":"GET opbeans-ruby:3000","type":"external","id":"34720eba4cc79706","transaction_id":"6fbae67e20c850c8","parent_id":"6fbae67e20c850c8","trace_id":"28ca90171900eeb3260f1dc85c1e8677","subtype":"http","action":"GET","timestamp":1646055564011623,"duration":104.815,"context":{"http":{"method":"GET","status_code":200,"url":"http://opbeans-ruby:3000/api/products/6/customers?limit=70"},"destination":{"service":{"name":"http://opbeans-ruby:3000","resource":"opbeans-ruby:3000","type":"external"},"address":"opbeans-ruby","port":3000}},"stacktrace":[{"filename":"server.js","lineno":101,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" req.log.debug('proxying request: %s => %s:%s', req.originalUrl, opts.hostname, opts.port + opts.path)",""],"context_line":" const clientReq = http.request(opts)","post_context":[""," clientReq.on('response', clientRes => {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":641,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":260,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js"},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}],"sync":false,"outcome":"success","sample_rate":1}} {"transaction":{"name":"GET /api","type":"request","result":"HTTP 2xx","id":"af5ea40ddeb35389","trace_id":"1ae1fdb16e807d75679ffde0daf070f5","duration":171.549,"timestamp":1646055564287030,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/customers/154","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/api/customers/154","full":"http://opbeans-node:3000/api/customers/154"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","server":"gunicorn","date":"Mon, 28 Feb 2022 13:39:24 GMT","connection":"close","content-type":"application/json","x-frame-options":"DENY","content-length":"202","vary":"Cookie","x-content-type-options":"nosniff","referrer-policy":"same-origin"}}},"span_count":{"started":1},"outcome":"success","sample_rate":1}} {"span":{"name":"GET opbeans-python:3000","type":"external","id":"fe9602b3b5b9789e","transaction_id":"af5ea40ddeb35389","parent_id":"af5ea40ddeb35389","trace_id":"1ae1fdb16e807d75679ffde0daf070f5","subtype":"http","action":"GET","timestamp":1646055564304170,"duration":120.12,"context":{"http":{"method":"GET","status_code":200,"url":"http://opbeans-python:3000/api/customers/154"},"destination":{"service":{"name":"http://opbeans-python:3000","resource":"opbeans-python:3000","type":"external"},"address":"opbeans-python","port":3000}},"stacktrace":[{"filename":"server.js","lineno":101,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" req.log.debug('proxying request: %s => %s:%s', req.originalUrl, opts.hostname, opts.port + opts.path)",""],"context_line":" const clientReq = http.request(opts)","post_context":[""," clientReq.on('response', clientRes => {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":641,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":260,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js"},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}],"sync":false,"outcome":"success","sample_rate":1}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"framework":{"name":"express","version":"4.17.3"},"version":"1.0.0"},"process":{"pid":326,"ppid":1,"title":"node /app/server.js","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"span":{"name":"GET","type":"cache","id":"08d8f61bd47d17a6","transaction_id":"ebc6cf73b3acee49","parent_id":"ebc6cf73b3acee49","trace_id":"fba1efce5c3c1b6a8c7af5d2b88463b9","subtype":"redis","action":null,"timestamp":1646055564514112,"duration":9.379,"context":{"destination":{"service":{"name":"redis","resource":"redis","type":"cache"},"address":"redis","port":6379}},"sync":false,"outcome":"success","sample_rate":1}} {"span":{"name":"SELECT FROM customers","type":"db","id":"55d947f0cf24d509","transaction_id":"ebc6cf73b3acee49","parent_id":"ebc6cf73b3acee49","trace_id":"fba1efce5c3c1b6a8c7af5d2b88463b9","subtype":"postgresql","action":"query","timestamp":1646055564527321,"duration":38.173,"context":{"db":{"statement":"SELECT * FROM customers LIMIT $1","type":"sql"},"destination":{"service":{"name":"postgresql","resource":"postgresql","type":"db"},"address":"postgres","port":5432}},"stacktrace":[{"filename":"node_modules/pg-pool/index.js","lineno":406,"function":"PendingItem.callback","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":298,"function":"_acquireClient","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":146,"function":"_pulseQueue","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":179,"function":"","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"internal/process/task_queues.js","lineno":77,"function":"processTicksAndRejections","library_frame":true,"abs_path":"internal/process/task_queues.js"}],"sync":false,"outcome":"success","sample_rate":1}} {"transaction":{"name":"GET /api/customers","type":"request","result":"HTTP 2xx","id":"ebc6cf73b3acee49","trace_id":"fba1efce5c3c1b6a8c7af5d2b88463b9","parent_id":"20ffa32d66e6d476","duration":110.171,"timestamp":1646055564503020,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/customers","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/api/customers","full":"http://opbeans-node:3000/api/customers"},"headers":{"connection":"close","host":"opbeans-node:3000","user-agent":"http.rb/5.0.4","traceparent":"00-fba1efce5c3c1b6a8c7af5d2b88463b9-20ffa32d66e6d476-01","tracestate":"es=s:1.0","elastic-apm-traceparent":"00-fba1efce5c3c1b6a8c7af5d2b88463b9-20ffa32d66e6d476-01"},"socket":{"remote_address":"::ffff:172.23.0.12"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"application/json; charset=utf-8","content-length":"186769","etag":"W/\"2d991-yG3J8W/roH7fSxXTudZrO27Ax9s\"","date":"Mon, 28 Feb 2022 13:39:24 GMT","connection":"close"}}},"span_count":{"started":2},"outcome":"success","sample_rate":1}} @@ -778,7 +750,6 @@ {"span":{"name":"SELECT FROM customers","type":"db","id":"05c1337e261d55bb","transaction_id":"3a4de9bb4ab082a7","parent_id":"3a4de9bb4ab082a7","trace_id":"7145ee82208513d0c73d3fbe4d5f33af","subtype":"postgresql","action":"query","timestamp":1646055565147306,"duration":58.496,"context":{"db":{"statement":"SELECT COUNT(*) FROM customers","type":"sql"},"destination":{"service":{"name":"postgresql","resource":"postgresql","type":"db"},"address":"postgres","port":5432}},"stacktrace":[{"filename":"node_modules/pg-pool/index.js","lineno":406,"function":"PendingItem.callback","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":298,"function":"_acquireClient","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":146,"function":"_pulseQueue","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":179,"function":"","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"internal/process/task_queues.js","lineno":77,"function":"processTicksAndRejections","library_frame":true,"abs_path":"internal/process/task_queues.js"}],"sync":false,"outcome":"success","sample_rate":1}} {"span":{"name":"SELECT FROM orders","type":"db","id":"b764e107ac81f4eb","transaction_id":"3a4de9bb4ab082a7","parent_id":"3a4de9bb4ab082a7","trace_id":"7145ee82208513d0c73d3fbe4d5f33af","subtype":"postgresql","action":"query","timestamp":1646055565162834,"duration":123.64,"context":{"db":{"statement":"SELECT COUNT(*) FROM orders","type":"sql"},"destination":{"service":{"name":"postgresql","resource":"postgresql","type":"db"},"address":"postgres","port":5432}},"stacktrace":[{"filename":"node_modules/pg-pool/index.js","lineno":406,"function":"PendingItem.callback","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":298,"function":"_acquireClient","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":146,"function":"_pulseQueue","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":179,"function":"","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"internal/process/task_queues.js","lineno":77,"function":"processTicksAndRejections","library_frame":true,"abs_path":"internal/process/task_queues.js"}],"sync":false,"outcome":"success","sample_rate":1}} {"error":{"id":"7d336e02183953a2be89277e625c9add","timestamp":1646055565344000,"parent_id":"c158925aeed0d2fd","trace_id":"cebf333015231d99ca73027d7e5b1361","transaction_id":"c158925aeed0d2fd","transaction":{"name":"GET unknown route (unnamed)","type":"request","sampled":true},"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/log-error","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/log-error","full":"http://opbeans-node:3000/log-error"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{},"headers_sent":false,"finished":false}},"exception":{"message":"foo","type":"Error","handled":true,"stacktrace":[{"filename":"server/coffee.js","lineno":17,"function":"","library_frame":false,"abs_path":"/app/server/coffee.js","pre_context":["","app.get('/log-error', function (req, res) {"],"context_line":" apm.captureError(new Error('foo'), function (err) {","post_context":[" if (err) {"," res.status(500).send('could not capture error: ' + err.message)"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/route.js","lineno":137,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" layer.handle_error(err, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/route.js","lineno":112,"function":"dispatch","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" req.route = this;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":281,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," if (route) {"],"context_line":" return layer.handle_request(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" req.originalUrl = req.originalUrl || req.url;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," function router(req, res, next) {"],"context_line":" router.handle(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":126,"function":"nextHook","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" function nextHook (err) {"," if (!err) req[symbols.staticFile] = false"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js","pre_context":[" }",""],"context_line":" next()","post_context":[" })",""]},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" // emit if listeners instead of responding"," if (hasListeners(this, 'error')) {"],"context_line":" return this.emit('error', createError(status, err, {","post_context":[" expose: false"," }))"]},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" case 'ENOENT':"," case 'ENOTDIR':"],"context_line":" this.error(404, error)","post_context":[" break"," default:"]},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (self._extensions.length <= i) {"," return err"],"context_line":" ? self.onStatError(err)","post_context":[" : self.error(404)"," }"]},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (err && err.code === 'ENOENT' && !extname(path) && path[path.length - 1] !== sep) {"," // not found, check extensions"],"context_line":" return next(err)","post_context":[" }"," if (err) return self.onStatError(err)"]},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}]},"culprit":" (server/coffee.js)"}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"framework":{"name":"express","version":"4.17.3"},"version":"1.0.0"},"process":{"pid":326,"ppid":1,"title":"node /app/server.js","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"span":{"name":"SELECT FROM order_lines","type":"db","id":"ef4e80b1abb5fb85","transaction_id":"3a4de9bb4ab082a7","parent_id":"3a4de9bb4ab082a7","trace_id":"7145ee82208513d0c73d3fbe4d5f33af","subtype":"postgresql","action":"query","timestamp":1646055565361987,"duration":18.849,"context":{"db":{"statement":"SELECT product_id, COUNT(product_id) AS amount FROM order_lines GROUP BY product_id","type":"sql"},"destination":{"service":{"name":"postgresql","resource":"postgresql","type":"db"},"address":"postgres","port":5432}},"stacktrace":[{"filename":"node_modules/pg-pool/index.js","lineno":406,"function":"PendingItem.callback","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":298,"function":"_acquireClient","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":270,"function":"Client.","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg/lib/client.js","lineno":279,"function":"_handleReadyForQuery","library_frame":true,"abs_path":"/app/node_modules/pg/lib/client.js"},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/pg/lib/connection.js","lineno":114,"function":"","library_frame":true,"abs_path":"/app/node_modules/pg/lib/connection.js"},{"filename":"node_modules/pg-protocol/src/parser.ts","lineno":104,"function":"parse","library_frame":true,"abs_path":"/app/node_modules/pg-protocol/src/parser.ts"},{"filename":"node_modules/pg-protocol/src/index.ts","lineno":7,"function":"Socket.","library_frame":true,"abs_path":"/app/node_modules/pg-protocol/src/index.ts"},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"internal/streams/readable.js","lineno":293,"function":"addChunk","library_frame":true,"abs_path":"internal/streams/readable.js"},{"filename":"internal/streams/readable.js","lineno":267,"function":"readableAddChunk","library_frame":true,"abs_path":"internal/streams/readable.js"},{"filename":"internal/streams/readable.js","lineno":206,"function":"Readable.push","library_frame":true,"abs_path":"internal/streams/readable.js"},{"filename":"internal/stream_base_commons.js","lineno":188,"function":"onStreamRead","library_frame":true,"abs_path":"internal/stream_base_commons.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}],"sync":true,"outcome":"success","sample_rate":1}} {"transaction":{"name":"GET /api/stats","type":"request","result":"HTTP 2xx","id":"3a4de9bb4ab082a7","trace_id":"7145ee82208513d0c73d3fbe4d5f33af","parent_id":"beb4ae303d9cd9b4","duration":318.797,"timestamp":1646055565115030,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/stats","protocol":"http:","hostname":"opbeans-go","port":"3000","pathname":"/api/stats","full":"http://opbeans-go:3000/api/stats"},"headers":{"host":"opbeans-go:3000","user-agent":"python-requests/2.27.1","accept":"*/*","accept-encoding":"gzip, deflate","elastic-apm-traceparent":"00-7145ee82208513d0c73d3fbe4d5f33af-beb4ae303d9cd9b4-01","traceparent":"00-7145ee82208513d0c73d3fbe4d5f33af-beb4ae303d9cd9b4-01","tracestate":"es=s:1.0","x-forwarded-for":"172.23.0.11, 172.23.0.9"},"socket":{"remote_address":"::ffff:172.23.0.9"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"application/json; charset=utf-8","content-length":"108","etag":"W/\"6c-t7HmStN3fR0Y5XCG92GLzVuOzaA\"","date":"Mon, 28 Feb 2022 13:39:25 GMT","connection":"keep-alive","keep-alive":"timeout=5"}}},"span_count":{"started":7},"outcome":"success","sample_rate":1}} {"span":{"name":"SELECT FROM products","type":"db","id":"f8a3f8f5deeb118f","transaction_id":"3a4de9bb4ab082a7","parent_id":"3a4de9bb4ab082a7","trace_id":"7145ee82208513d0c73d3fbe4d5f33af","subtype":"postgresql","action":"query","timestamp":1646055565391051,"duration":18.806,"context":{"db":{"statement":"SELECT cost, selling_price FROM products WHERE id=$1","type":"sql"},"destination":{"service":{"name":"postgresql","resource":"postgresql","type":"db"},"address":"postgres","port":5432}},"stacktrace":[{"filename":"node_modules/pg-pool/index.js","lineno":406,"function":"PendingItem.callback","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":298,"function":"_acquireClient","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":146,"function":"_pulseQueue","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":179,"function":"","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"internal/process/task_queues.js","lineno":77,"function":"processTicksAndRejections","library_frame":true,"abs_path":"internal/process/task_queues.js"}],"sync":false,"outcome":"success","sample_rate":1}} @@ -836,9 +807,7 @@ {"transaction":{"name":"GET /api/customers","type":"request","result":"HTTP 2xx","id":"8587d79392fa7d6b","trace_id":"e1c6148f5281e6ce2f0e8324bce12070","duration":116.285,"timestamp":1646055570738026,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/customers","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/api/customers","full":"http://opbeans-node:3000/api/customers"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"application/json; charset=utf-8","content-length":"186769","etag":"W/\"2d991-yG3J8W/roH7fSxXTudZrO27Ax9s\"","date":"Mon, 28 Feb 2022 13:39:30 GMT","connection":"close"}}},"span_count":{"started":2},"outcome":"success","sample_rate":1}} {"span":{"name":"SELECT FROM customers","type":"db","id":"7fe4eb66c9b86019","transaction_id":"8587d79392fa7d6b","parent_id":"8587d79392fa7d6b","trace_id":"e1c6148f5281e6ce2f0e8324bce12070","subtype":"postgresql","action":"query","timestamp":1646055570750257,"duration":77.09,"context":{"db":{"statement":"SELECT * FROM customers LIMIT $1","type":"sql"},"destination":{"service":{"name":"postgresql","resource":"postgresql","type":"db"},"address":"postgres","port":5432}},"stacktrace":[{"filename":"node_modules/pg-pool/index.js","lineno":406,"function":"PendingItem.callback","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":298,"function":"_acquireClient","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":146,"function":"_pulseQueue","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":179,"function":"","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"internal/process/task_queues.js","lineno":77,"function":"processTicksAndRejections","library_frame":true,"abs_path":"internal/process/task_queues.js"}],"sync":false,"outcome":"success","sample_rate":1}} {"error":{"id":"ced88aa69a8d437f03e2a366d871bf93","timestamp":1646055571265000,"parent_id":"e79edb4c22188277","trace_id":"a14a008351b7e94a01e67668f85baa63","transaction_id":"e79edb4c22188277","transaction":{"name":"GET unknown route (unnamed)","type":"request","sampled":true},"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/log-message","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/log-message","full":"http://opbeans-node:3000/log-message"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{},"headers_sent":false,"finished":false}},"log":{"message":"this is a string","stacktrace":[{"filename":"server/coffee.js","lineno":27,"function":"","library_frame":false,"abs_path":"/app/server/coffee.js","pre_context":["","app.get('/log-message', function (req, res) {"],"context_line":" apm.captureError('this is a string', function (err) {","post_context":[" if (err) {"," res.status(500).send('could not capture error: ' + err.message)"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/route.js","lineno":137,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" layer.handle_error(err, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/route.js","lineno":112,"function":"dispatch","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" req.route = this;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":281,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," if (route) {"],"context_line":" return layer.handle_request(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" req.originalUrl = req.originalUrl || req.url;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," function router(req, res, next) {"],"context_line":" router.handle(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":126,"function":"nextHook","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" function nextHook (err) {"," if (!err) req[symbols.staticFile] = false"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js","pre_context":[" }",""],"context_line":" next()","post_context":[" })",""]},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" // emit if listeners instead of responding"," if (hasListeners(this, 'error')) {"],"context_line":" return this.emit('error', createError(status, err, {","post_context":[" expose: false"," }))"]},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" case 'ENOENT':"," case 'ENOTDIR':"],"context_line":" this.error(404, error)","post_context":[" break"," default:"]},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (self._extensions.length <= i) {"," return err"],"context_line":" ? self.onStatError(err)","post_context":[" : self.error(404)"," }"]},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (err && err.code === 'ENOENT' && !extname(path) && path[path.length - 1] !== sep) {"," // not found, check extensions"],"context_line":" return next(err)","post_context":[" }"," if (err) return self.onStatError(err)"]},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}]}}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"version":"1.0.0"},"process":{"pid":339,"ppid":1,"title":"node /app/node_modules/.bin/workload","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js","-f",".workload.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"metricset":{"samples":{"system.cpu.total.norm.pct":{"value":0.7175704989154013},"system.memory.actual.free":{"value":7056711680},"system.memory.total":{"value":12544401408},"system.process.cpu.total.norm.pct":{"value":0},"system.process.cpu.system.norm.pct":{"value":0},"system.process.cpu.user.norm.pct":{"value":0},"system.process.memory.size":{"value":0},"system.process.memory.rss.bytes":{"value":0},"nodejs.handles.active":{"value":3},"nodejs.requests.active":{"value":3},"nodejs.eventloop.delay.avg.ms":{"value":1.2026867061025843},"nodejs.memory.heap.allocated.bytes":{"value":20353024},"nodejs.memory.heap.used.bytes":{"value":17188840},"nodejs.memory.external.bytes":{"value":1809910},"nodejs.memory.arrayBuffers.bytes":{"value":101118}},"timestamp":1646055565648000,"tags":{"hostname":"698fd446b62a","env":"production"}}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"framework":{"name":"express","version":"4.17.3"},"version":"1.0.0"},"process":{"pid":326,"ppid":1,"title":"node /app/server.js","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"transaction":{"name":"GET /log-message","type":"request","result":"HTTP 5xx","id":"e79edb4c22188277","trace_id":"a14a008351b7e94a01e67668f85baa63","duration":80.92,"timestamp":1646055571255028,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/log-message","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/log-message","full":"http://opbeans-node:3000/log-message"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":500,"headers":{"x-powered-by":"Express","content-type":"text/html; charset=utf-8","content-length":"24","etag":"W/\"18-MS3VbhH7auHMzO0fUuNF6v14N/M\"","date":"Mon, 28 Feb 2022 13:39:31 GMT","connection":"close"}}},"span_count":{"started":0},"outcome":"failure","sample_rate":1}} {"transaction":{"name":"GET /throw-error","type":"request","result":"HTTP 5xx","id":"22e0f68c4254d8b8","trace_id":"51d418fdfb52561e53ee1a97069e17b2","duration":57.839,"timestamp":1646055571756060,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/throw-error","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/throw-error","full":"http://opbeans-node:3000/throw-error"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":500,"headers":{"x-powered-by":"Express","content-security-policy":"default-src 'none'","x-content-type-options":"nosniff","content-type":"text/html; charset=utf-8","content-length":"148","date":"Mon, 28 Feb 2022 13:39:31 GMT","connection":"close"}}},"span_count":{"started":0},"outcome":"failure","sample_rate":1}} {"error":{"id":"f432c00296adb9989d3b732ed58feb0e","timestamp":1646055571807000,"parent_id":"22e0f68c4254d8b8","trace_id":"51d418fdfb52561e53ee1a97069e17b2","transaction_id":"22e0f68c4254d8b8","transaction":{"name":"GET /throw-error","type":"request","sampled":true},"context":{"user":{},"tags":{},"custom":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/throw-error","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/throw-error","full":"http://opbeans-node:3000/throw-error"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":500,"headers":{"x-powered-by":"Express","content-security-policy":"default-src 'none'","x-content-type-options":"nosniff","content-type":"text/html; charset=utf-8","content-length":"148","date":"Mon, 28 Feb 2022 13:39:31 GMT","connection":"close"},"headers_sent":true,"finished":true}},"exception":{"message":"this will get captured by express","type":"Error","handled":true,"stacktrace":[{"filename":"server/coffee.js","lineno":37,"function":"","library_frame":false,"abs_path":"/app/server/coffee.js","pre_context":["","app.get('/throw-error', function (req, res) {"],"context_line":" throw new Error('this will get captured by express')","post_context":["})",""]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/route.js","lineno":137,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" layer.handle_error(err, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/route.js","lineno":112,"function":"dispatch","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" req.route = this;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":281,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," if (route) {"],"context_line":" return layer.handle_request(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" req.originalUrl = req.originalUrl || req.url;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," function router(req, res, next) {"],"context_line":" router.handle(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":126,"function":"nextHook","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" function nextHook (err) {"," if (!err) req[symbols.staticFile] = false"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js","pre_context":[" }",""],"context_line":" next()","post_context":[" })",""]},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" // emit if listeners instead of responding"," if (hasListeners(this, 'error')) {"],"context_line":" return this.emit('error', createError(status, err, {","post_context":[" expose: false"," }))"]},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" case 'ENOENT':"," case 'ENOTDIR':"],"context_line":" this.error(404, error)","post_context":[" break"," default:"]},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (self._extensions.length <= i) {"," return err"],"context_line":" ? self.onStatError(err)","post_context":[" : self.error(404)"," }"]},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (err && err.code === 'ENOENT' && !extname(path) && path[path.length - 1] !== sep) {"," // not found, check extensions"],"context_line":" return next(err)","post_context":[" }"," if (err) return self.onStatError(err)"]},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}]},"culprit":" (server/coffee.js)"}} @@ -912,7 +881,6 @@ {"span":{"name":"SELECT FROM customers","type":"db","id":"6562e354abe7dcb2","transaction_id":"03799890d794e74d","parent_id":"03799890d794e74d","trace_id":"3580d2942f451a703ca1eb0da8a01b1b","subtype":"postgresql","action":"query","timestamp":1646055575480061,"duration":4.683,"context":{"db":{"statement":"SELECT c.* FROM customers c LEFT JOIN orders o ON c.id=o.customer_id LEFT JOIN order_lines l ON o.id=l.order_id LEFT JOIN products p ON l.product_id=p.id WHERE p.id=$1 LIMIT $2","type":"sql"},"destination":{"service":{"name":"postgresql","resource":"postgresql","type":"db"},"address":"postgres","port":5432}},"sync":false,"outcome":"success","sample_rate":1}} {"transaction":{"name":"GET /api/products/:id/customers","type":"request","result":"HTTP 2xx","id":"03799890d794e74d","trace_id":"3580d2942f451a703ca1eb0da8a01b1b","parent_id":"a920184071ea2e5b","duration":16.125,"timestamp":1646055575475021,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/products/1/customers","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/api/products/1/customers","full":"http://opbeans-node:3000/api/products/1/customers"},"headers":{"host":"opbeans-node:3000","user-agent":"python-requests/2.27.1","accept-encoding":"gzip, deflate","accept":"*/*","connection":"keep-alive","traceparent":"00-3580d2942f451a703ca1eb0da8a01b1b-a920184071ea2e5b-01","elastic-apm-traceparent":"00-3580d2942f451a703ca1eb0da8a01b1b-a920184071ea2e5b-01","tracestate":"es=s:1.0"},"socket":{"remote_address":"::ffff:172.23.0.11"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"application/json; charset=utf-8","content-length":"1299","etag":"W/\"513-SatyJ8cM4py92/C0bKaTe9W8iAk\"","date":"Mon, 28 Feb 2022 13:39:35 GMT","connection":"keep-alive","keep-alive":"timeout=5"}}},"span_count":{"started":1},"outcome":"success","sample_rate":1}} {"error":{"id":"ff35b7846eb8dedb3f73c25ece05941d","timestamp":1646055575773000,"parent_id":"ecef9bb7d133561c","trace_id":"ae4daa3c679a59473227f25613b70b1f","transaction_id":"ecef9bb7d133561c","transaction":{"name":"GET unknown route (unnamed)","type":"request","sampled":true},"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/log-message","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/log-message","full":"http://opbeans-node:3000/log-message"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{},"headers_sent":false,"finished":false}},"log":{"message":"this is a string","stacktrace":[{"filename":"server/coffee.js","lineno":27,"function":"","library_frame":false,"abs_path":"/app/server/coffee.js","pre_context":["","app.get('/log-message', function (req, res) {"],"context_line":" apm.captureError('this is a string', function (err) {","post_context":[" if (err) {"," res.status(500).send('could not capture error: ' + err.message)"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/route.js","lineno":137,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" layer.handle_error(err, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/route.js","lineno":112,"function":"dispatch","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" req.route = this;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":281,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," if (route) {"],"context_line":" return layer.handle_request(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" req.originalUrl = req.originalUrl || req.url;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," function router(req, res, next) {"],"context_line":" router.handle(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":126,"function":"nextHook","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" function nextHook (err) {"," if (!err) req[symbols.staticFile] = false"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js","pre_context":[" }",""],"context_line":" next()","post_context":[" })",""]},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" // emit if listeners instead of responding"," if (hasListeners(this, 'error')) {"],"context_line":" return this.emit('error', createError(status, err, {","post_context":[" expose: false"," }))"]},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" case 'ENOENT':"," case 'ENOTDIR':"],"context_line":" this.error(404, error)","post_context":[" break"," default:"]},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (self._extensions.length <= i) {"," return err"],"context_line":" ? self.onStatError(err)","post_context":[" : self.error(404)"," }"]},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (err && err.code === 'ENOENT' && !extname(path) && path[path.length - 1] !== sep) {"," // not found, check extensions"],"context_line":" return next(err)","post_context":[" }"," if (err) return self.onStatError(err)"]},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}]}}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"framework":{"name":"express","version":"4.17.3"},"version":"1.0.0"},"process":{"pid":326,"ppid":1,"title":"node /app/server.js","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"transaction":{"name":"GET /log-message","type":"request","result":"HTTP 5xx","id":"ecef9bb7d133561c","trace_id":"ae4daa3c679a59473227f25613b70b1f","duration":62.679,"timestamp":1646055575756074,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/log-message","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/log-message","full":"http://opbeans-node:3000/log-message"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":500,"headers":{"x-powered-by":"Express","content-type":"text/html; charset=utf-8","content-length":"24","etag":"W/\"18-MS3VbhH7auHMzO0fUuNF6v14N/M\"","date":"Mon, 28 Feb 2022 13:39:35 GMT","connection":"close"}}},"span_count":{"started":0},"outcome":"failure","sample_rate":1}} {"transaction":{"name":"GET /api","type":"request","result":"HTTP 2xx","id":"7189a0e0d00ed518","trace_id":"6e84069221aa3b35604d7002fba59ddc","parent_id":"bc8af74b99cbdbc1","duration":96.651,"timestamp":1646055575883022,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/products/6/customers","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/api/products/6/customers","full":"http://opbeans-node:3000/api/products/6/customers"},"headers":{"host":"opbeans-node:3000","user-agent":"python-requests/2.27.1","accept-encoding":"gzip, deflate","accept":"*/*","connection":"keep-alive","traceparent":"00-6e84069221aa3b35604d7002fba59ddc-bc8af74b99cbdbc1-01","elastic-apm-traceparent":"00-6e84069221aa3b35604d7002fba59ddc-bc8af74b99cbdbc1-01","tracestate":"es=s:1.0"},"socket":{"remote_address":"::ffff:172.23.0.11"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"application/json; charset=utf-8","connection":"close","transfer-encoding":"chunked","date":"Mon, 28 Feb 2022 13:39:35 GMT"}}},"span_count":{"started":1},"outcome":"success","sample_rate":1}} {"span":{"name":"GET opbeans-ruby:3000","type":"external","id":"f1bb3f0b05d8d784","transaction_id":"7189a0e0d00ed518","parent_id":"7189a0e0d00ed518","trace_id":"6e84069221aa3b35604d7002fba59ddc","subtype":"http","action":"GET","timestamp":1646055575887584,"duration":85.514,"context":{"http":{"method":"GET","status_code":200,"url":"http://opbeans-ruby:3000/api/products/6/customers"},"destination":{"service":{"name":"http://opbeans-ruby:3000","resource":"opbeans-ruby:3000","type":"external"},"address":"opbeans-ruby","port":3000}},"stacktrace":[{"filename":"server.js","lineno":101,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" req.log.debug('proxying request: %s => %s:%s', req.originalUrl, opts.hostname, opts.port + opts.path)",""],"context_line":" const clientReq = http.request(opts)","post_context":[""," clientReq.on('response', clientRes => {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":641,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":260,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js"},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}],"sync":false,"outcome":"success","sample_rate":1}} @@ -1001,7 +969,6 @@ {"span":{"name":"GET opbeans-ruby:3000","type":"external","id":"f6490895ef1a1473","transaction_id":"48299ea3fb164b13","parent_id":"48299ea3fb164b13","trace_id":"15cc78733234b64f58d876ccbed4c6d7","subtype":"http","action":"GET","timestamp":1646055585264094,"duration":46.374,"context":{"http":{"method":"GET","status_code":200,"url":"http://opbeans-ruby:3000/api/products/2"},"destination":{"service":{"name":"http://opbeans-ruby:3000","resource":"opbeans-ruby:3000","type":"external"},"address":"opbeans-ruby","port":3000}},"stacktrace":[{"filename":"server.js","lineno":101,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" req.log.debug('proxying request: %s => %s:%s', req.originalUrl, opts.hostname, opts.port + opts.path)",""],"context_line":" const clientReq = http.request(opts)","post_context":[""," clientReq.on('response', clientRes => {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":641,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":260,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js"},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}],"sync":false,"outcome":"success","sample_rate":1}} {"transaction":{"name":"GET /api","type":"request","result":"HTTP 2xx","id":"f287f12f136d9e71","trace_id":"f5d7796a40ab56b1e99eb41176ee2db6","parent_id":"5c34998d674f6432","duration":150.056,"timestamp":1646055585278062,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/customers/336","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/api/customers/336","full":"http://opbeans-node:3000/api/customers/336"},"headers":{"connection":"close","host":"opbeans-node:3000","user-agent":"http.rb/5.0.4","traceparent":"00-f5d7796a40ab56b1e99eb41176ee2db6-5c34998d674f6432-01","tracestate":"es=s:1.0","elastic-apm-traceparent":"00-f5d7796a40ab56b1e99eb41176ee2db6-5c34998d674f6432-01"},"socket":{"remote_address":"::ffff:172.23.0.12"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","server":"gunicorn","date":"Mon, 28 Feb 2022 13:39:45 GMT","connection":"close","content-type":"application/json","x-frame-options":"DENY","content-length":"209","vary":"Cookie","x-content-type-options":"nosniff","referrer-policy":"same-origin"}}},"span_count":{"started":1},"outcome":"success","sample_rate":1}} {"span":{"name":"GET opbeans-python:3000","type":"external","id":"affcbe684248f8c2","transaction_id":"f287f12f136d9e71","parent_id":"f287f12f136d9e71","trace_id":"f5d7796a40ab56b1e99eb41176ee2db6","subtype":"http","action":"GET","timestamp":1646055585289657,"duration":117.851,"context":{"http":{"method":"GET","status_code":200,"url":"http://opbeans-python:3000/api/customers/336"},"destination":{"service":{"name":"http://opbeans-python:3000","resource":"opbeans-python:3000","type":"external"},"address":"opbeans-python","port":3000}},"stacktrace":[{"filename":"server.js","lineno":101,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" req.log.debug('proxying request: %s => %s:%s', req.originalUrl, opts.hostname, opts.port + opts.path)",""],"context_line":" const clientReq = http.request(opts)","post_context":[""," clientReq.on('response', clientRes => {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":641,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":260,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js"},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}],"sync":false,"outcome":"success","sample_rate":1}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"framework":{"name":"express","version":"4.17.3"},"version":"1.0.0"},"process":{"pid":326,"ppid":1,"title":"node /app/server.js","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"transaction":{"name":"GET /api","type":"request","result":"HTTP 2xx","id":"4eeca161738afe30","trace_id":"c8ea9682ef419a64d347c0f599fdb1ff","duration":123.155,"timestamp":1646055585755030,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/orders","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/api/orders","full":"http://opbeans-node:3000/api/orders"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","x-frame-options":"SAMEORIGIN","x-xss-protection":"1; mode=block","x-content-type-options":"nosniff","x-download-options":"noopen","x-permitted-cross-domain-policies":"none","referrer-policy":"strict-origin-when-cross-origin","content-type":"application/json; charset=utf-8","etag":"W/\"195dc75dd23c6abbf5c85d7fd3d619d1\"","cache-control":"max-age=0, private, must-revalidate","x-request-id":"1ece963c-1e32-40a5-b636-ed8013db0fde","x-runtime":"0.065412","connection":"close","transfer-encoding":"chunked","date":"Mon, 28 Feb 2022 13:39:45 GMT"}}},"span_count":{"started":1},"outcome":"success","sample_rate":1}} {"span":{"name":"GET opbeans-ruby:3000","type":"external","id":"ca24e447a53ad213","transaction_id":"4eeca161738afe30","parent_id":"4eeca161738afe30","trace_id":"c8ea9682ef419a64d347c0f599fdb1ff","subtype":"http","action":"GET","timestamp":1646055585767935,"duration":96.743,"context":{"http":{"method":"GET","status_code":200,"url":"http://opbeans-ruby:3000/api/orders"},"destination":{"service":{"name":"http://opbeans-ruby:3000","resource":"opbeans-ruby:3000","type":"external"},"address":"opbeans-ruby","port":3000}},"stacktrace":[{"filename":"server.js","lineno":101,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" req.log.debug('proxying request: %s => %s:%s', req.originalUrl, opts.hostname, opts.port + opts.path)",""],"context_line":" const clientReq = http.request(opts)","post_context":[""," clientReq.on('response', clientRes => {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":641,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":260,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js"},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}],"sync":false,"outcome":"success","sample_rate":1}} {"transaction":{"name":"GET /api","type":"request","result":"HTTP 2xx","id":"90f4b7b5141f5b16","trace_id":"7bcae756cc2af0bd211d3223e7d5387e","parent_id":"a9dccaef47c24489","duration":77.162,"timestamp":1646055585958033,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/products/4/customers","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/api/products/4/customers","full":"http://opbeans-node:3000/api/products/4/customers"},"headers":{"connection":"close","host":"opbeans-node:3000","user-agent":"http.rb/5.0.4","traceparent":"00-7bcae756cc2af0bd211d3223e7d5387e-a9dccaef47c24489-01","tracestate":"es=s:1.0","elastic-apm-traceparent":"00-7bcae756cc2af0bd211d3223e7d5387e-a9dccaef47c24489-01"},"socket":{"remote_address":"::ffff:172.23.0.12"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"application/json","connection":"close","transfer-encoding":"chunked","date":"Mon, 28 Feb 2022 13:39:46 GMT"}}},"span_count":{"started":1},"outcome":"success","sample_rate":1}} @@ -1080,7 +1047,6 @@ {"span":{"name":"SELECT FROM product_types","type":"db","id":"91bf7276cd18aa0b","transaction_id":"4632c7ea711b0caa","parent_id":"4632c7ea711b0caa","trace_id":"75225aef0441903ea382847def82d2c0","subtype":"postgresql","action":"query","timestamp":1646055591745569,"duration":2.73,"context":{"db":{"statement":"SELECT * FROM product_types","type":"sql"},"destination":{"service":{"name":"postgresql","resource":"postgresql","type":"db"},"address":"postgres","port":5432}},"sync":false,"outcome":"success","sample_rate":1}} {"transaction":{"name":"GET /api/types","type":"request","result":"HTTP 2xx","id":"4632c7ea711b0caa","trace_id":"75225aef0441903ea382847def82d2c0","parent_id":"80d19ba909586f8a","duration":31.704,"timestamp":1646055591724031,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/types","protocol":"http:","hostname":"opbeans-go","port":"3000","pathname":"/api/types","full":"http://opbeans-go:3000/api/types"},"headers":{"host":"opbeans-go:3000","user-agent":"Python/3.7 aiohttp/3.3.2","accept":"*/*","accept-encoding":"gzip, deflate","elastic-apm-traceparent":"00-75225aef0441903ea382847def82d2c0-80d19ba909586f8a-01","traceparent":"00-75225aef0441903ea382847def82d2c0-80d19ba909586f8a-01","tracestate":"es=s:1","x-forwarded-for":"172.23.0.14"},"socket":{"remote_address":"::ffff:172.23.0.9"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"application/json; charset=utf-8","content-length":"112","etag":"W/\"70-1z6hT7P1WHgBgS/BeUEVeHhOCQU\"","date":"Mon, 28 Feb 2022 13:39:51 GMT","connection":"keep-alive","keep-alive":"timeout=5"}}},"span_count":{"started":2},"outcome":"success","sample_rate":1}} {"error":{"id":"39383215c4aac06f9eb63e48c52d1ada","timestamp":1646055591812000,"parent_id":"a3613d3be18ef785","trace_id":"229cf535fac1a1556726fb3b809551a3","transaction_id":"a3613d3be18ef785","transaction":{"name":"GET unknown route (unnamed)","type":"request","sampled":true},"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/log-error","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/log-error","full":"http://opbeans-node:3000/log-error"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{},"headers_sent":false,"finished":false}},"exception":{"message":"foo","type":"Error","handled":true,"stacktrace":[{"filename":"server/coffee.js","lineno":17,"function":"","library_frame":false,"abs_path":"/app/server/coffee.js","pre_context":["","app.get('/log-error', function (req, res) {"],"context_line":" apm.captureError(new Error('foo'), function (err) {","post_context":[" if (err) {"," res.status(500).send('could not capture error: ' + err.message)"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/route.js","lineno":137,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" layer.handle_error(err, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/route.js","lineno":112,"function":"dispatch","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" req.route = this;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":281,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," if (route) {"],"context_line":" return layer.handle_request(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" req.originalUrl = req.originalUrl || req.url;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," function router(req, res, next) {"],"context_line":" router.handle(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":126,"function":"nextHook","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" function nextHook (err) {"," if (!err) req[symbols.staticFile] = false"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js","pre_context":[" }",""],"context_line":" next()","post_context":[" })",""]},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" // emit if listeners instead of responding"," if (hasListeners(this, 'error')) {"],"context_line":" return this.emit('error', createError(status, err, {","post_context":[" expose: false"," }))"]},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" case 'ENOENT':"," case 'ENOTDIR':"],"context_line":" this.error(404, error)","post_context":[" break"," default:"]},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (self._extensions.length <= i) {"," return err"],"context_line":" ? self.onStatError(err)","post_context":[" : self.error(404)"," }"]},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (err && err.code === 'ENOENT' && !extname(path) && path[path.length - 1] !== sep) {"," // not found, check extensions"],"context_line":" return next(err)","post_context":[" }"," if (err) return self.onStatError(err)"]},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}]},"culprit":" (server/coffee.js)"}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"framework":{"name":"express","version":"4.17.3"},"version":"1.0.0"},"process":{"pid":326,"ppid":1,"title":"node /app/server.js","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"transaction":{"name":"GET /log-error","type":"request","result":"HTTP 5xx","id":"a3613d3be18ef785","trace_id":"229cf535fac1a1556726fb3b809551a3","duration":73.671,"timestamp":1646055591790107,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/log-error","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/log-error","full":"http://opbeans-node:3000/log-error"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":500,"headers":{"x-powered-by":"Express","content-type":"text/html; charset=utf-8","content-length":"24","etag":"W/\"18-MS3VbhH7auHMzO0fUuNF6v14N/M\"","date":"Mon, 28 Feb 2022 13:39:51 GMT","connection":"close"}}},"span_count":{"started":0},"outcome":"failure","sample_rate":1}} {"transaction":{"name":"GET /throw-error","type":"request","result":"HTTP 5xx","id":"662f293844dc0970","trace_id":"30a9b73efe21f51cf37864669f4dcda3","duration":22.697,"timestamp":1646055592269058,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/throw-error","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/throw-error","full":"http://opbeans-node:3000/throw-error"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":500,"headers":{"x-powered-by":"Express","content-security-policy":"default-src 'none'","x-content-type-options":"nosniff","content-type":"text/html; charset=utf-8","content-length":"148","date":"Mon, 28 Feb 2022 13:39:52 GMT","connection":"close"}}},"span_count":{"started":0},"outcome":"failure","sample_rate":1}} {"error":{"id":"c1fb270d16cf747df6b736a4f76f7d80","timestamp":1646055592280000,"parent_id":"662f293844dc0970","trace_id":"30a9b73efe21f51cf37864669f4dcda3","transaction_id":"662f293844dc0970","transaction":{"name":"GET /throw-error","type":"request","sampled":true},"context":{"user":{},"tags":{},"custom":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/throw-error","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/throw-error","full":"http://opbeans-node:3000/throw-error"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":500,"headers":{"x-powered-by":"Express","content-security-policy":"default-src 'none'","x-content-type-options":"nosniff","content-type":"text/html; charset=utf-8","content-length":"148","date":"Mon, 28 Feb 2022 13:39:52 GMT","connection":"close"},"headers_sent":true,"finished":true}},"exception":{"message":"this will get captured by express","type":"Error","handled":true,"stacktrace":[{"filename":"server/coffee.js","lineno":37,"function":"","library_frame":false,"abs_path":"/app/server/coffee.js","pre_context":["","app.get('/throw-error', function (req, res) {"],"context_line":" throw new Error('this will get captured by express')","post_context":["})",""]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/route.js","lineno":137,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" layer.handle_error(err, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/route.js","lineno":112,"function":"dispatch","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" req.route = this;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":281,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," if (route) {"],"context_line":" return layer.handle_request(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" req.originalUrl = req.originalUrl || req.url;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," function router(req, res, next) {"],"context_line":" router.handle(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":126,"function":"nextHook","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" function nextHook (err) {"," if (!err) req[symbols.staticFile] = false"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js","pre_context":[" }",""],"context_line":" next()","post_context":[" })",""]},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" // emit if listeners instead of responding"," if (hasListeners(this, 'error')) {"],"context_line":" return this.emit('error', createError(status, err, {","post_context":[" expose: false"," }))"]},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" case 'ENOENT':"," case 'ENOTDIR':"],"context_line":" this.error(404, error)","post_context":[" break"," default:"]},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (self._extensions.length <= i) {"," return err"],"context_line":" ? self.onStatError(err)","post_context":[" : self.error(404)"," }"]},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (err && err.code === 'ENOENT' && !extname(path) && path[path.length - 1] !== sep) {"," // not found, check extensions"],"context_line":" return next(err)","post_context":[" }"," if (err) return self.onStatError(err)"]},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}]},"culprit":" (server/coffee.js)"}} @@ -1130,7 +1096,6 @@ {"transaction":{"name":"GET /api/customers/:id","type":"request","result":"HTTP 2xx","id":"8bdc4e59862d6a13","trace_id":"a1b1df8392c28e6e948e6bf3c8b5bf8e","parent_id":"860cd69182ba6362","duration":305.133,"timestamp":1646055595047118,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/customers/507","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/api/customers/507","full":"http://opbeans-node:3000/api/customers/507"},"headers":{"host":"opbeans-node:3000","user-agent":"python-requests/2.27.1","accept-encoding":"gzip, deflate","accept":"*/*","connection":"keep-alive","traceparent":"00-a1b1df8392c28e6e948e6bf3c8b5bf8e-860cd69182ba6362-01","elastic-apm-traceparent":"00-a1b1df8392c28e6e948e6bf3c8b5bf8e-860cd69182ba6362-01","tracestate":"es=s:1.0"},"socket":{"remote_address":"::ffff:172.23.0.11"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"application/json; charset=utf-8","content-length":"196","etag":"W/\"c4-DWY8j8LVBtYFKFdcqsE3r2Th/Fo\"","date":"Mon, 28 Feb 2022 13:39:55 GMT","connection":"keep-alive","keep-alive":"timeout=5"}}},"span_count":{"started":1},"outcome":"success","sample_rate":1}} {"span":{"name":"SELECT FROM customers","type":"db","id":"94da3ab08d9cdbea","transaction_id":"8bdc4e59862d6a13","parent_id":"8bdc4e59862d6a13","trace_id":"a1b1df8392c28e6e948e6bf3c8b5bf8e","subtype":"postgresql","action":"query","timestamp":1646055595073777,"duration":204.34,"context":{"db":{"statement":"SELECT * FROM customers WHERE id=$1","type":"sql"},"destination":{"service":{"name":"postgresql","resource":"postgresql","type":"db"},"address":"postgres","port":5432}},"stacktrace":[{"filename":"node_modules/pg-pool/index.js","lineno":406,"function":"PendingItem.callback","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":298,"function":"_acquireClient","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":146,"function":"_pulseQueue","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":179,"function":"","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"internal/process/task_queues.js","lineno":77,"function":"processTicksAndRejections","library_frame":true,"abs_path":"internal/process/task_queues.js"}],"sync":false,"outcome":"success","sample_rate":1}} {"error":{"id":"f5f8dcb63e988d8877435456467d05be","timestamp":1646055595514000,"parent_id":"46bf8199208dca53","trace_id":"f84a23cf63e4872e38608d9a95f4c327","transaction_id":"46bf8199208dca53","transaction":{"name":"GET unknown route (unnamed)","type":"request","sampled":true},"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/log-error","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/log-error","full":"http://opbeans-node:3000/log-error"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{},"headers_sent":false,"finished":false}},"exception":{"message":"foo","type":"Error","handled":true,"stacktrace":[{"filename":"server/coffee.js","lineno":17,"function":"","library_frame":false,"abs_path":"/app/server/coffee.js","pre_context":["","app.get('/log-error', function (req, res) {"],"context_line":" apm.captureError(new Error('foo'), function (err) {","post_context":[" if (err) {"," res.status(500).send('could not capture error: ' + err.message)"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/route.js","lineno":137,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" layer.handle_error(err, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/route.js","lineno":112,"function":"dispatch","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" req.route = this;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":281,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," if (route) {"],"context_line":" return layer.handle_request(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" req.originalUrl = req.originalUrl || req.url;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," function router(req, res, next) {"],"context_line":" router.handle(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":126,"function":"nextHook","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" function nextHook (err) {"," if (!err) req[symbols.staticFile] = false"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js","pre_context":[" }",""],"context_line":" next()","post_context":[" })",""]},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" // emit if listeners instead of responding"," if (hasListeners(this, 'error')) {"],"context_line":" return this.emit('error', createError(status, err, {","post_context":[" expose: false"," }))"]},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" case 'ENOENT':"," case 'ENOTDIR':"],"context_line":" this.error(404, error)","post_context":[" break"," default:"]},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (self._extensions.length <= i) {"," return err"],"context_line":" ? self.onStatError(err)","post_context":[" : self.error(404)"," }"]},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (err && err.code === 'ENOENT' && !extname(path) && path[path.length - 1] !== sep) {"," // not found, check extensions"],"context_line":" return next(err)","post_context":[" }"," if (err) return self.onStatError(err)"]},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}]},"culprit":" (server/coffee.js)"}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"framework":{"name":"express","version":"4.17.3"},"version":"1.0.0"},"process":{"pid":326,"ppid":1,"title":"node /app/server.js","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"transaction":{"name":"GET /log-error","type":"request","result":"HTTP 5xx","id":"46bf8199208dca53","trace_id":"f84a23cf63e4872e38608d9a95f4c327","duration":220.194,"timestamp":1646055595433045,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/log-error","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/log-error","full":"http://opbeans-node:3000/log-error"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":500,"headers":{"x-powered-by":"Express","content-type":"text/html; charset=utf-8","content-length":"24","etag":"W/\"18-MS3VbhH7auHMzO0fUuNF6v14N/M\"","date":"Mon, 28 Feb 2022 13:39:55 GMT","connection":"close"}}},"span_count":{"started":0},"outcome":"failure","sample_rate":1}} {"span":{"name":"GET","type":"cache","id":"525cfd618221cda2","transaction_id":"1e0001b7a75a94c9","parent_id":"1e0001b7a75a94c9","trace_id":"65433289fd3a683395cf5446384bd1e9","subtype":"redis","action":null,"timestamp":1646055595781109,"duration":3.154,"context":{"destination":{"service":{"name":"redis","resource":"redis","type":"cache"},"address":"redis","port":6379}},"sync":false,"outcome":"success","sample_rate":1}} {"span":{"name":"SELECT FROM customers","type":"db","id":"605ac1a7001a9ba6","transaction_id":"1e0001b7a75a94c9","parent_id":"1e0001b7a75a94c9","trace_id":"65433289fd3a683395cf5446384bd1e9","subtype":"postgresql","action":"query","timestamp":1646055595786183,"duration":75.485,"context":{"db":{"statement":"SELECT * FROM customers LIMIT $1","type":"sql"},"destination":{"service":{"name":"postgresql","resource":"postgresql","type":"db"},"address":"postgres","port":5432}},"stacktrace":[{"filename":"node_modules/pg-pool/index.js","lineno":406,"function":"PendingItem.callback","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":298,"function":"_acquireClient","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":146,"function":"_pulseQueue","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":179,"function":"","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"internal/process/task_queues.js","lineno":77,"function":"processTicksAndRejections","library_frame":true,"abs_path":"internal/process/task_queues.js"}],"sync":false,"outcome":"success","sample_rate":1}} @@ -1138,10 +1103,8 @@ {"transaction":{"name":"GET /api/products/:id","type":"request","result":"HTTP 2xx","id":"42764d9b23fc3f3c","trace_id":"68df3101fee4f75f2044e57e15f3263e","duration":82.573,"timestamp":1646055595987040,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/products/3","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/api/products/3","full":"http://opbeans-node:3000/api/products/3"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"application/json; charset=utf-8","content-length":"231","etag":"W/\"e7-kkuzj37GZDzXDh0CWqh5Gan0VO4\"","date":"Mon, 28 Feb 2022 13:39:56 GMT","connection":"close"}}},"span_count":{"started":1},"outcome":"success","sample_rate":1}} {"span":{"name":"SELECT FROM products","type":"db","id":"d49a8543ebaf2d0d","transaction_id":"42764d9b23fc3f3c","parent_id":"42764d9b23fc3f3c","trace_id":"68df3101fee4f75f2044e57e15f3263e","subtype":"postgresql","action":"query","timestamp":1646055596038050,"duration":23.528,"context":{"db":{"statement":"SELECT p.*, t.name AS type_name FROM products p LEFT JOIN product_types t ON p.type_id=t.id WHERE p.id=$1","type":"sql"},"destination":{"service":{"name":"postgresql","resource":"postgresql","type":"db"},"address":"postgres","port":5432}},"stacktrace":[{"filename":"node_modules/pg-pool/index.js","lineno":406,"function":"PendingItem.callback","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":298,"function":"_acquireClient","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":146,"function":"_pulseQueue","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":179,"function":"","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"internal/process/task_queues.js","lineno":77,"function":"processTicksAndRejections","library_frame":true,"abs_path":"internal/process/task_queues.js"}],"sync":false,"outcome":"success","sample_rate":1}} {"error":{"id":"1f6d3be3eb596213dccdde7901726265","timestamp":1646055596410000,"parent_id":"454fb058d1c3e276","trace_id":"d1c477edaaad4db681fcc8a9ee34a5cf","transaction_id":"454fb058d1c3e276","transaction":{"name":"GET unknown route (unnamed)","type":"request","sampled":true},"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/throw-async-error","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/throw-async-error","full":"http://opbeans-node:3000/throw-async-error"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{},"headers_sent":false,"finished":false}},"exception":{"message":"this will not get captured by express","type":"Error","handled":false,"stacktrace":[{"filename":"server/coffee.js","lineno":42,"function":"","library_frame":false,"abs_path":"/app/server/coffee.js","pre_context":["app.get('/throw-async-error', function (req, res) {"," process.nextTick(function () {"],"context_line":" throw new Error('this will not get captured by express')","post_context":[" })","})"]},{"filename":"internal/process/task_queues.js","lineno":77,"function":"processTicksAndRejections","library_frame":true,"abs_path":"internal/process/task_queues.js"}]},"culprit":" (server/coffee.js)"}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"version":"1.0.0"},"process":{"pid":339,"ppid":1,"title":"node /app/node_modules/.bin/workload","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js","-f",".workload.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"metricset":{"samples":{"system.cpu.total.norm.pct":{"value":0.8443159595272511},"system.memory.actual.free":{"value":6997942272},"system.memory.total":{"value":12544401408},"system.process.cpu.total.norm.pct":{"value":0},"system.process.cpu.system.norm.pct":{"value":0},"system.process.cpu.user.norm.pct":{"value":0},"system.process.memory.size":{"value":0},"system.process.memory.rss.bytes":{"value":0},"nodejs.handles.active":{"value":4},"nodejs.requests.active":{"value":5},"nodejs.eventloop.delay.avg.ms":{"value":0.7513983896663081},"nodejs.memory.heap.allocated.bytes":{"value":17584128},"nodejs.memory.heap.used.bytes":{"value":15450872},"nodejs.memory.external.bytes":{"value":2153438},"nodejs.memory.arrayBuffers.bytes":{"value":444646}},"timestamp":1646055595646000,"tags":{"hostname":"698fd446b62a","env":"production"}}} {"error":{"id":"bfc0ca2ac14d0007fb1f616369800891","timestamp":1646055596753000,"context":{"user":{},"tags":{},"custom":{}},"exception":{"message":"socket hang up","type":"Error","handled":false,"code":"ECONNRESET","stacktrace":[{"filename":"internal/errors.js","lineno":639,"function":"connResetException","library_frame":true,"abs_path":"internal/errors.js"},{"filename":"_http_client.js","lineno":499,"function":"socketOnEnd","library_frame":true,"abs_path":"_http_client.js"},{"filename":"events.js","lineno":412,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"internal/streams/readable.js","lineno":1334,"function":"endReadableNT","library_frame":true,"abs_path":"internal/streams/readable.js"},{"filename":"internal/process/task_queues.js","lineno":82,"function":"processTicksAndRejections","library_frame":true,"abs_path":"internal/process/task_queues.js"}]},"culprit":"connResetException (internal/errors.js)"}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"framework":{"name":"express","version":"4.17.3"},"version":"1.0.0"},"process":{"pid":428,"ppid":1,"title":"node /app/server.js","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"metricset":{"samples":{"system.cpu.total.norm.pct":{"value":0.9951884522854851},"system.memory.actual.free":{"value":7196336128},"system.memory.total":{"value":12544401408},"system.process.cpu.total.norm.pct":{"value":0},"system.process.cpu.system.norm.pct":{"value":0},"system.process.cpu.user.norm.pct":{"value":0},"system.process.memory.size":{"value":0},"system.process.memory.rss.bytes":{"value":0},"nodejs.handles.active":{"value":8},"nodejs.requests.active":{"value":11},"nodejs.eventloop.delay.avg.ms":{"value":0},"nodejs.memory.heap.allocated.bytes":{"value":54956032},"nodejs.memory.heap.used.bytes":{"value":28588056},"nodejs.memory.external.bytes":{"value":2510235},"nodejs.memory.arrayBuffers.bytes":{"value":794428}},"timestamp":1646055605745000,"tags":{"hostname":"698fd446b62a","env":"production"}}} {"transaction":{"name":"GET /*","type":"request","result":"HTTP 2xx","id":"91230eb0616f4dc6","trace_id":"cd96b2d12f158cd68dce18d42e3ec65d","parent_id":"3c2af5345baa9098","duration":240.486,"timestamp":1646055606650317,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/","full":"http://opbeans-node:3000/"},"headers":{"host":"opbeans-node:3000","user-agent":"Wget","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"text/html","content-length":"813","date":"Mon, 28 Feb 2022 13:40:06 GMT","connection":"close"}}},"span_count":{"started":0},"outcome":"success","sample_rate":1}} {"transaction":{"name":"GET /api","type":"request","result":"HTTP 2xx","id":"00d0424592f043fb","trace_id":"7249683ac688b97f7aea00b4b0fa541a","parent_id":"71c9599b51c1d3e1","duration":221.242,"timestamp":1646055607033028,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/types","protocol":"http:","hostname":"opbeans-go","port":"3000","pathname":"/api/types","full":"http://opbeans-go:3000/api/types"},"headers":{"host":"opbeans-go:3000","user-agent":"Python/3.7 aiohttp/3.3.2","accept":"*/*","accept-encoding":"gzip, deflate","elastic-apm-traceparent":"00-7249683ac688b97f7aea00b4b0fa541a-71c9599b51c1d3e1-01","traceparent":"00-7249683ac688b97f7aea00b4b0fa541a-71c9599b51c1d3e1-01","tracestate":"es=s:1","x-forwarded-for":"172.23.0.14"},"socket":{"remote_address":"::ffff:172.23.0.9"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","server":"gunicorn","date":"Mon, 28 Feb 2022 13:40:07 GMT","connection":"close","content-type":"application/json","x-frame-options":"DENY","content-length":"123","vary":"Cookie","x-content-type-options":"nosniff","referrer-policy":"same-origin"}}},"span_count":{"started":1},"outcome":"success","sample_rate":1}} @@ -1257,9 +1220,7 @@ {"span":{"name":"GET","type":"cache","id":"0062976ab1a95a27","transaction_id":"ca99ee6694e00a70","parent_id":"ca99ee6694e00a70","trace_id":"ee834b3d91e374c06f723c62220e6a21","subtype":"redis","action":null,"timestamp":1646055615581355,"duration":10.306,"context":{"destination":{"service":{"name":"redis","resource":"redis","type":"cache"},"address":"redis","port":6379}},"stacktrace":[{"filename":"node_modules/redis/lib/commands.js","lineno":46,"function":"get","library_frame":true,"abs_path":"/app/node_modules/redis/lib/commands.js"},{"filename":"server/routes.js","lineno":142,"function":"","library_frame":false,"abs_path":"/app/server/routes.js","pre_context":["","app.get('/types', function (req, res) {"],"context_line":" redis.get('types', function (err, obj) {","post_context":[" if (err) apm.captureError(err)"," else if (obj) return res.json(obj)"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/route.js","lineno":137,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js"},{"filename":"node_modules/express/lib/router/route.js","lineno":112,"function":"dispatch","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js"},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":281,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"server.js","lineno":88,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":["app.use('/api', function (req, res, next) {"," if (Math.random() > opbeansRedirectProbability) {"],"context_line":" return next()","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":641,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":260,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"}],"sync":false,"outcome":"success","sample_rate":1}} {"transaction":{"name":"GET /api/types","type":"request","result":"HTTP 2xx","id":"ca99ee6694e00a70","trace_id":"ee834b3d91e374c06f723c62220e6a21","duration":105.393,"timestamp":1646055615565060,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/types","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/api/types","full":"http://opbeans-node:3000/api/types"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"application/json; charset=utf-8","content-length":"112","etag":"W/\"70-1z6hT7P1WHgBgS/BeUEVeHhOCQU\"","date":"Mon, 28 Feb 2022 13:40:15 GMT","connection":"close"}}},"span_count":{"started":2},"outcome":"success","sample_rate":1}} {"span":{"name":"SELECT FROM product_types","type":"db","id":"fa7ce039d251d55f","transaction_id":"ca99ee6694e00a70","parent_id":"ca99ee6694e00a70","trace_id":"ee834b3d91e374c06f723c62220e6a21","subtype":"postgresql","action":"query","timestamp":1646055615600581,"duration":48.175,"context":{"db":{"statement":"SELECT * FROM product_types","type":"sql"},"destination":{"service":{"name":"postgresql","resource":"postgresql","type":"db"},"address":"postgres","port":5432}},"stacktrace":[{"filename":"node_modules/pg-pool/index.js","lineno":406,"function":"PendingItem.callback","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":298,"function":"_acquireClient","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":146,"function":"_pulseQueue","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":179,"function":"","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"internal/process/task_queues.js","lineno":77,"function":"processTicksAndRejections","library_frame":true,"abs_path":"internal/process/task_queues.js"}],"sync":false,"outcome":"success","sample_rate":1}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"version":"1.0.0"},"process":{"pid":441,"ppid":1,"title":"node /app/node_modules/.bin/workload","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js","-f",".workload.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"metricset":{"samples":{"system.cpu.total.norm.pct":{"value":1},"system.memory.actual.free":{"value":7191707648},"system.memory.total":{"value":12544401408},"system.process.cpu.total.norm.pct":{"value":0},"system.process.cpu.system.norm.pct":{"value":0},"system.process.cpu.user.norm.pct":{"value":0},"system.process.memory.size":{"value":0},"system.process.memory.rss.bytes":{"value":0},"nodejs.handles.active":{"value":7},"nodejs.requests.active":{"value":10},"nodejs.eventloop.delay.avg.ms":{"value":0},"nodejs.memory.heap.allocated.bytes":{"value":33460224},"nodejs.memory.heap.used.bytes":{"value":15697992},"nodejs.memory.external.bytes":{"value":1954068},"nodejs.memory.arrayBuffers.bytes":{"value":245276}},"timestamp":1646055606114000,"tags":{"hostname":"698fd446b62a","env":"production"}}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"framework":{"name":"express","version":"4.17.3"},"version":"1.0.0"},"process":{"pid":428,"ppid":1,"title":"node /app/server.js","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"span":{"name":"GET","type":"cache","id":"00edbc392ee1fa8c","transaction_id":"1081fdbd36eb3e2e","parent_id":"1081fdbd36eb3e2e","trace_id":"7b9e7f637f2d55a42ac727d542fcddc1","subtype":"redis","action":null,"timestamp":1646055616155424,"duration":21.993,"context":{"destination":{"service":{"name":"redis","resource":"redis","type":"cache"},"address":"redis","port":6379}},"stacktrace":[{"filename":"node_modules/redis/lib/commands.js","lineno":46,"function":"get","library_frame":true,"abs_path":"/app/node_modules/redis/lib/commands.js"},{"filename":"server/routes.js","lineno":59,"function":"","library_frame":false,"abs_path":"/app/server/routes.js","pre_context":["","app.get('/products', function (req, res) {"],"context_line":" redis.get('products', function (err, obj) {","post_context":[" if (err) apm.captureError(err)"," else if (obj) return res.json(obj)"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/route.js","lineno":137,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js"},{"filename":"node_modules/express/lib/router/route.js","lineno":112,"function":"dispatch","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js"},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":281,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"server.js","lineno":88,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":["app.use('/api', function (req, res, next) {"," if (Math.random() > opbeansRedirectProbability) {"],"context_line":" return next()","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":641,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":260,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"}],"sync":false,"outcome":"success","sample_rate":1}} {"transaction":{"name":"GET /api/products","type":"request","result":"HTTP 2xx","id":"1081fdbd36eb3e2e","trace_id":"7b9e7f637f2d55a42ac727d542fcddc1","duration":164.027,"timestamp":1646055616111048,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/products","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/api/products","full":"http://opbeans-node:3000/api/products"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"application/json; charset=utf-8","content-length":"1023","etag":"W/\"3ff-VyOxcDApb+a/lnjkm9FeTOGSDrs\"","date":"Mon, 28 Feb 2022 13:40:16 GMT","connection":"close"}}},"span_count":{"started":2},"outcome":"success","sample_rate":1}} {"span":{"name":"SELECT FROM products","type":"db","id":"fa5182008db42c4e","transaction_id":"1081fdbd36eb3e2e","parent_id":"1081fdbd36eb3e2e","trace_id":"7b9e7f637f2d55a42ac727d542fcddc1","subtype":"postgresql","action":"query","timestamp":1646055616201711,"duration":30.776,"context":{"db":{"statement":"SELECT p.id, p.sku, p.name, p.stock, t.name AS type_name FROM products p LEFT JOIN product_types t ON p.type_id=t.id","type":"sql"},"destination":{"service":{"name":"postgresql","resource":"postgresql","type":"db"},"address":"postgres","port":5432}},"stacktrace":[{"filename":"node_modules/pg-pool/index.js","lineno":406,"function":"PendingItem.callback","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":298,"function":"_acquireClient","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":146,"function":"_pulseQueue","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":179,"function":"","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"internal/process/task_queues.js","lineno":77,"function":"processTicksAndRejections","library_frame":true,"abs_path":"internal/process/task_queues.js"}],"sync":false,"outcome":"success","sample_rate":1}} @@ -1285,7 +1246,6 @@ {"span":{"name":"SELECT FROM products","type":"db","id":"6c41ad4cc4c3be03","transaction_id":"c1c14e21f9903c48","parent_id":"c1c14e21f9903c48","trace_id":"48009750c6ea64add1c7f794b0f5a36f","subtype":"postgresql","action":"query","timestamp":1646055618641774,"duration":22.018,"context":{"db":{"statement":"SELECT id, sku, name, stock FROM products WHERE id=$1","type":"sql"},"destination":{"service":{"name":"postgresql","resource":"postgresql","type":"db"},"address":"postgres","port":5432}},"stacktrace":[{"filename":"node_modules/pg-pool/index.js","lineno":406,"function":"PendingItem.callback","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":298,"function":"_acquireClient","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":146,"function":"_pulseQueue","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":179,"function":"","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"internal/process/task_queues.js","lineno":77,"function":"processTicksAndRejections","library_frame":true,"abs_path":"internal/process/task_queues.js"}],"sync":false,"outcome":"success","sample_rate":1}} {"span":{"name":"SELECT FROM products","type":"db","id":"8775917fe04391b0","transaction_id":"c1c14e21f9903c48","parent_id":"c1c14e21f9903c48","trace_id":"48009750c6ea64add1c7f794b0f5a36f","subtype":"postgresql","action":"query","timestamp":1646055618647169,"duration":24.426,"context":{"db":{"statement":"SELECT id, sku, name, stock FROM products WHERE id=$1","type":"sql"},"destination":{"service":{"name":"postgresql","resource":"postgresql","type":"db"},"address":"postgres","port":5432}},"stacktrace":[{"filename":"node_modules/pg-pool/index.js","lineno":406,"function":"PendingItem.callback","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":298,"function":"_acquireClient","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":146,"function":"_pulseQueue","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":179,"function":"","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"internal/process/task_queues.js","lineno":77,"function":"processTicksAndRejections","library_frame":true,"abs_path":"internal/process/task_queues.js"}],"sync":false,"outcome":"success","sample_rate":1}} {"error":{"id":"18326003f240c00d654d7d8a40541354","timestamp":1646055619074000,"parent_id":"9a140ca271dcb6f7","trace_id":"57cac0fb11e75b5a48855c6ef58444cd","transaction_id":"9a140ca271dcb6f7","transaction":{"name":"GET unknown route (unnamed)","type":"request","sampled":true},"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/log-error","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/log-error","full":"http://opbeans-node:3000/log-error"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{},"headers_sent":false,"finished":false}},"exception":{"message":"foo","type":"Error","handled":true,"stacktrace":[{"filename":"server/coffee.js","lineno":17,"function":"","library_frame":false,"abs_path":"/app/server/coffee.js","pre_context":["","app.get('/log-error', function (req, res) {"],"context_line":" apm.captureError(new Error('foo'), function (err) {","post_context":[" if (err) {"," res.status(500).send('could not capture error: ' + err.message)"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/route.js","lineno":137,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" layer.handle_error(err, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/route.js","lineno":112,"function":"dispatch","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" req.route = this;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":281,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," if (route) {"],"context_line":" return layer.handle_request(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" req.originalUrl = req.originalUrl || req.url;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," function router(req, res, next) {"],"context_line":" router.handle(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":126,"function":"nextHook","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" function nextHook (err) {"," if (!err) req[symbols.staticFile] = false"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js","pre_context":[" }",""],"context_line":" next()","post_context":[" })",""]},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" // emit if listeners instead of responding"," if (hasListeners(this, 'error')) {"],"context_line":" return this.emit('error', createError(status, err, {","post_context":[" expose: false"," }))"]},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" case 'ENOENT':"," case 'ENOTDIR':"],"context_line":" this.error(404, error)","post_context":[" break"," default:"]},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (self._extensions.length <= i) {"," return err"],"context_line":" ? self.onStatError(err)","post_context":[" : self.error(404)"," }"]},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (err && err.code === 'ENOENT' && !extname(path) && path[path.length - 1] !== sep) {"," // not found, check extensions"],"context_line":" return next(err)","post_context":[" }"," if (err) return self.onStatError(err)"]},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}]},"culprit":" (server/coffee.js)"}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"framework":{"name":"express","version":"4.17.3"},"version":"1.0.0"},"process":{"pid":428,"ppid":1,"title":"node /app/server.js","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"transaction":{"name":"GET /log-error","type":"request","result":"HTTP 5xx","id":"9a140ca271dcb6f7","trace_id":"57cac0fb11e75b5a48855c6ef58444cd","duration":54.532,"timestamp":1646055619068021,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/log-error","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/log-error","full":"http://opbeans-node:3000/log-error"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":500,"headers":{"x-powered-by":"Express","content-type":"text/html; charset=utf-8","content-length":"24","etag":"W/\"18-MS3VbhH7auHMzO0fUuNF6v14N/M\"","date":"Mon, 28 Feb 2022 13:40:19 GMT","connection":"close"}}},"span_count":{"started":0},"outcome":"failure","sample_rate":1}} {"transaction":{"name":"GET static file","type":"request","result":"HTTP 2xx","id":"d8aa1806dc56121f","trace_id":"1dc39a0ec19e7bdd94ea25b5c3e2d05f","duration":20.829,"timestamp":1646055619579023,"sampled":true,"context":{"user":{},"tags":{},"custom":{},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/favicon.ico","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/favicon.ico","full":"http://opbeans-node:3000/favicon.ico"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","accept-ranges":"bytes","cache-control":"public, max-age=0","last-modified":"Sat, 11 Dec 2021 17:17:01 GMT","etag":"W/\"3aee-17daa7f7ac8\"","content-type":"image/x-icon","content-length":"15086","date":"Mon, 28 Feb 2022 13:40:19 GMT","connection":"close"}}},"span_count":{"started":0},"outcome":"success","sample_rate":1}} {"transaction":{"name":"GET /api","type":"request","result":"HTTP 2xx","id":"9726504df14ccc85","trace_id":"cf203921590d1ff478d37a6e95a42b80","duration":140.912,"timestamp":1646055620089032,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/orders/89","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/api/orders/89","full":"http://opbeans-node:3000/api/orders/89"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"application/json","connection":"close","transfer-encoding":"chunked","date":"Mon, 28 Feb 2022 13:40:20 GMT"}}},"span_count":{"started":1},"outcome":"success","sample_rate":1}} @@ -1353,7 +1313,6 @@ {"transaction":{"name":"GET /api","type":"request","result":"HTTP 4xx","id":"6a1bc383a403a5e4","trace_id":"ed864fe010a198d37fe552f72627ce17","duration":127.583,"timestamp":1646055624096030,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/orders/473","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/api/orders/473","full":"http://opbeans-node:3000/api/orders/473"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":404,"headers":{"x-powered-by":"Express","content-type":"text/html; charset=UTF-8","x-request-id":"fe41802b-4049-42be-af8d-82b445ce30f8","x-runtime":"0.065351","connection":"close","content-length":"1722","date":"Mon, 28 Feb 2022 13:40:24 GMT"}}},"span_count":{"started":1},"outcome":"success","sample_rate":1}} {"span":{"name":"GET opbeans-ruby:3000","type":"external","id":"b63cda195d624bb9","transaction_id":"6a1bc383a403a5e4","parent_id":"6a1bc383a403a5e4","trace_id":"ed864fe010a198d37fe552f72627ce17","subtype":"http","action":"GET","timestamp":1646055624101231,"duration":107.537,"context":{"http":{"method":"GET","status_code":404,"url":"http://opbeans-ruby:3000/api/orders/473"},"destination":{"service":{"name":"http://opbeans-ruby:3000","resource":"opbeans-ruby:3000","type":"external"},"address":"opbeans-ruby","port":3000}},"stacktrace":[{"filename":"server.js","lineno":101,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" req.log.debug('proxying request: %s => %s:%s', req.originalUrl, opts.hostname, opts.port + opts.path)",""],"context_line":" const clientReq = http.request(opts)","post_context":[""," clientReq.on('response', clientRes => {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":641,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":260,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js"},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}],"sync":false,"outcome":"failure","sample_rate":1}} {"error":{"id":"d05debc7ab9ca8561ac497fec297c91c","timestamp":1646055624598000,"parent_id":"03a9f8640b7a8bd4","trace_id":"05034e201376d396f6171443a335b201","transaction_id":"03a9f8640b7a8bd4","transaction":{"name":"GET unknown route (unnamed)","type":"request","sampled":true},"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/log-error","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/log-error","full":"http://opbeans-node:3000/log-error"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{},"headers_sent":false,"finished":false}},"exception":{"message":"foo","type":"Error","handled":true,"stacktrace":[{"filename":"server/coffee.js","lineno":17,"function":"","library_frame":false,"abs_path":"/app/server/coffee.js","pre_context":["","app.get('/log-error', function (req, res) {"],"context_line":" apm.captureError(new Error('foo'), function (err) {","post_context":[" if (err) {"," res.status(500).send('could not capture error: ' + err.message)"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/route.js","lineno":137,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" layer.handle_error(err, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/route.js","lineno":112,"function":"dispatch","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" req.route = this;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":281,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," if (route) {"],"context_line":" return layer.handle_request(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" req.originalUrl = req.originalUrl || req.url;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," function router(req, res, next) {"],"context_line":" router.handle(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":126,"function":"nextHook","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" function nextHook (err) {"," if (!err) req[symbols.staticFile] = false"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js","pre_context":[" }",""],"context_line":" next()","post_context":[" })",""]},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" // emit if listeners instead of responding"," if (hasListeners(this, 'error')) {"],"context_line":" return this.emit('error', createError(status, err, {","post_context":[" expose: false"," }))"]},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" case 'ENOENT':"," case 'ENOTDIR':"],"context_line":" this.error(404, error)","post_context":[" break"," default:"]},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (self._extensions.length <= i) {"," return err"],"context_line":" ? self.onStatError(err)","post_context":[" : self.error(404)"," }"]},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (err && err.code === 'ENOENT' && !extname(path) && path[path.length - 1] !== sep) {"," // not found, check extensions"],"context_line":" return next(err)","post_context":[" }"," if (err) return self.onStatError(err)"]},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}]},"culprit":" (server/coffee.js)"}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"framework":{"name":"express","version":"4.17.3"},"version":"1.0.0"},"process":{"pid":428,"ppid":1,"title":"node /app/server.js","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"transaction":{"name":"GET /log-error","type":"request","result":"HTTP 5xx","id":"03a9f8640b7a8bd4","trace_id":"05034e201376d396f6171443a335b201","duration":75.052,"timestamp":1646055624588018,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/log-error","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/log-error","full":"http://opbeans-node:3000/log-error"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":500,"headers":{"x-powered-by":"Express","content-type":"text/html; charset=utf-8","content-length":"24","etag":"W/\"18-MS3VbhH7auHMzO0fUuNF6v14N/M\"","date":"Mon, 28 Feb 2022 13:40:24 GMT","connection":"close"}}},"span_count":{"started":0},"outcome":"failure","sample_rate":1}} {"transaction":{"name":"GET static file","type":"request","result":"HTTP 2xx","id":"98cbafa8eb169d1b","trace_id":"4a3d22b6b8cfc07764055423b76d1196","duration":25.933,"timestamp":1646055625095041,"sampled":true,"context":{"user":{},"tags":{},"custom":{},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/favicon.ico","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/favicon.ico","full":"http://opbeans-node:3000/favicon.ico"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","accept-ranges":"bytes","cache-control":"public, max-age=0","last-modified":"Sat, 11 Dec 2021 17:17:01 GMT","etag":"W/\"3aee-17daa7f7ac8\"","content-type":"image/x-icon","content-length":"15086","date":"Mon, 28 Feb 2022 13:40:25 GMT","connection":"close"}}},"span_count":{"started":0},"outcome":"success","sample_rate":1}} {"transaction":{"name":"GET /*","type":"request","result":"HTTP 2xx","id":"5046e7e9631602f2","trace_id":"2d77f7e2ab93cff32be9d16760e40322","parent_id":"fff3dd395967c5d3","duration":34.988,"timestamp":1646055625606035,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/","full":"http://opbeans-node:3000/"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"text/html","content-length":"813","date":"Mon, 28 Feb 2022 13:40:25 GMT","connection":"close"}}},"span_count":{"started":0},"outcome":"success","sample_rate":1}} @@ -1452,7 +1411,6 @@ {"transaction":{"name":"GET /api/stats","type":"request","result":"HTTP 2xx","id":"d143eac775a6f839","trace_id":"1e6f8439e2ec0859acadf9256fcbd9ee","duration":92.09,"timestamp":1646055634605148,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/stats","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/api/stats","full":"http://opbeans-node:3000/api/stats"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"application/json; charset=utf-8","content-length":"108","etag":"W/\"6c-t7HmStN3fR0Y5XCG92GLzVuOzaA\"","date":"Mon, 28 Feb 2022 13:40:34 GMT","connection":"close"}}},"span_count":{"started":7},"outcome":"success","sample_rate":1}} {"span":{"name":"SELECT FROM products","type":"db","id":"b7d4ba09c60e820a","transaction_id":"d143eac775a6f839","parent_id":"d143eac775a6f839","trace_id":"1e6f8439e2ec0859acadf9256fcbd9ee","subtype":"postgresql","action":"query","timestamp":1646055634673619,"duration":10.818,"context":{"db":{"statement":"SELECT cost, selling_price FROM products WHERE id=$1","type":"sql"},"destination":{"service":{"name":"postgresql","resource":"postgresql","type":"db"},"address":"postgres","port":5432}},"stacktrace":[{"filename":"node_modules/pg-pool/index.js","lineno":406,"function":"PendingItem.callback","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":298,"function":"_acquireClient","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":146,"function":"_pulseQueue","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":179,"function":"","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"internal/process/task_queues.js","lineno":77,"function":"processTicksAndRejections","library_frame":true,"abs_path":"internal/process/task_queues.js"}],"sync":false,"outcome":"success","sample_rate":1}} {"span":{"name":"SELECT FROM products","type":"db","id":"3b0cc57218e8c3fc","transaction_id":"d143eac775a6f839","parent_id":"d143eac775a6f839","trace_id":"1e6f8439e2ec0859acadf9256fcbd9ee","subtype":"postgresql","action":"query","timestamp":1646055634669259,"duration":17.685,"context":{"db":{"statement":"SELECT cost, selling_price FROM products WHERE id=$1","type":"sql"},"destination":{"service":{"name":"postgresql","resource":"postgresql","type":"db"},"address":"postgres","port":5432}},"stacktrace":[{"filename":"node_modules/pg-pool/index.js","lineno":406,"function":"PendingItem.callback","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":298,"function":"_acquireClient","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":146,"function":"_pulseQueue","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":179,"function":"","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"internal/process/task_queues.js","lineno":77,"function":"processTicksAndRejections","library_frame":true,"abs_path":"internal/process/task_queues.js"}],"sync":false,"outcome":"success","sample_rate":1}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"framework":{"name":"express","version":"4.17.3"},"version":"1.0.0"},"process":{"pid":428,"ppid":1,"title":"node /app/server.js","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"span":{"name":"SELECT FROM customers","type":"db","id":"ad3d927679bac118","transaction_id":"8689e54e88cba338","parent_id":"8689e54e88cba338","trace_id":"6634337d506a6af4f24df02d402596fe","subtype":"postgresql","action":"query","timestamp":1646055634782990,"duration":2.998,"context":{"db":{"statement":"SELECT * FROM customers WHERE id=$1","type":"sql"},"destination":{"service":{"name":"postgresql","resource":"postgresql","type":"db"},"address":"postgres","port":5432}},"sync":false,"outcome":"success","sample_rate":1}} {"transaction":{"name":"GET /api/customers/:id","type":"request","result":"HTTP 2xx","id":"8689e54e88cba338","trace_id":"6634337d506a6af4f24df02d402596fe","parent_id":"d9ef89af46618d80","duration":14.33,"timestamp":1646055634775018,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/customers/928","protocol":"http:","hostname":"opbeans-go","port":"3000","pathname":"/api/customers/928","full":"http://opbeans-go:3000/api/customers/928"},"headers":{"host":"opbeans-go:3000","user-agent":"Python/3.7 aiohttp/3.3.2","accept":"*/*","accept-encoding":"gzip, deflate","elastic-apm-traceparent":"00-6634337d506a6af4f24df02d402596fe-d9ef89af46618d80-01","traceparent":"00-6634337d506a6af4f24df02d402596fe-d9ef89af46618d80-01","tracestate":"es=s:1","x-forwarded-for":"172.23.0.14, 172.23.0.9"},"socket":{"remote_address":"::ffff:172.23.0.9"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"application/json; charset=utf-8","content-length":"181","etag":"W/\"b5-wlHWSpsgyrF+Kq8GyYatcMXvymo\"","date":"Mon, 28 Feb 2022 13:40:34 GMT","connection":"keep-alive","keep-alive":"timeout=5"}}},"span_count":{"started":1},"outcome":"success","sample_rate":1}} {"span":{"name":"GET","type":"cache","id":"d0251fd7c1288a2e","transaction_id":"11d134355dc9d8b6","parent_id":"11d134355dc9d8b6","trace_id":"1fd5dbe7f23869a11e2059e2ad56428a","subtype":"redis","action":null,"timestamp":1646055635059659,"duration":2.594,"context":{"destination":{"service":{"name":"redis","resource":"redis","type":"cache"},"address":"redis","port":6379}},"sync":false,"outcome":"success","sample_rate":1}} @@ -1489,9 +1447,7 @@ {"transaction":{"name":"GET /api","type":"request","result":"HTTP 2xx","id":"7efb63984e20ba1b","trace_id":"7653a1002b32660166fcd9147253c23f","parent_id":"3e5924d2f4a37d6c","duration":30.469,"timestamp":1646055637054052,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/orders","protocol":"http:","hostname":"opbeans-go","port":"3000","pathname":"/api/orders","full":"http://opbeans-go:3000/api/orders"},"headers":{"host":"opbeans-go:3000","user-agent":"Python/3.7 aiohttp/3.3.2","accept":"*/*","accept-encoding":"gzip, deflate","elastic-apm-traceparent":"00-7653a1002b32660166fcd9147253c23f-3e5924d2f4a37d6c-01","traceparent":"00-7653a1002b32660166fcd9147253c23f-3e5924d2f4a37d6c-01","tracestate":"es=s:1","x-forwarded-for":"172.23.0.14"},"socket":{"remote_address":"::ffff:172.23.0.9"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"application/json; charset=utf-8","date":"Mon, 28 Feb 2022 13:40:37 GMT","connection":"close","transfer-encoding":"chunked"}}},"span_count":{"started":1},"outcome":"success","sample_rate":1}} {"span":{"name":"GET opbeans-go:3000","type":"external","id":"42060037884473f3","transaction_id":"7efb63984e20ba1b","parent_id":"7efb63984e20ba1b","trace_id":"7653a1002b32660166fcd9147253c23f","subtype":"http","action":"GET","timestamp":1646055637060066,"duration":20.274,"context":{"http":{"method":"GET","status_code":200,"url":"http://opbeans-go:3000/api/orders"},"destination":{"service":{"name":"http://opbeans-go:3000","resource":"opbeans-go:3000","type":"external"},"address":"opbeans-go","port":3000}},"stacktrace":[{"filename":"server.js","lineno":101,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" req.log.debug('proxying request: %s => %s:%s', req.originalUrl, opts.hostname, opts.port + opts.path)",""],"context_line":" const clientReq = http.request(opts)","post_context":[""," clientReq.on('response', clientRes => {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":641,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":260,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js"},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}],"sync":false,"outcome":"success","sample_rate":1}} {"error":{"id":"77d1b9bd6f2b483b642bbe166bb5b121","timestamp":1646055637126000,"parent_id":"ae39d417efc426e7","trace_id":"41e0ec39f19d4d4c25e84bdc01333084","transaction_id":"ae39d417efc426e7","transaction":{"name":"GET unknown route (unnamed)","type":"request","sampled":true},"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/log-error","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/log-error","full":"http://opbeans-node:3000/log-error"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{},"headers_sent":false,"finished":false}},"exception":{"message":"foo","type":"Error","handled":true,"stacktrace":[{"filename":"server/coffee.js","lineno":17,"function":"","library_frame":false,"abs_path":"/app/server/coffee.js","pre_context":["","app.get('/log-error', function (req, res) {"],"context_line":" apm.captureError(new Error('foo'), function (err) {","post_context":[" if (err) {"," res.status(500).send('could not capture error: ' + err.message)"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/route.js","lineno":137,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" layer.handle_error(err, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/route.js","lineno":112,"function":"dispatch","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" req.route = this;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":281,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," if (route) {"],"context_line":" return layer.handle_request(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" req.originalUrl = req.originalUrl || req.url;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," function router(req, res, next) {"],"context_line":" router.handle(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":126,"function":"nextHook","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" function nextHook (err) {"," if (!err) req[symbols.staticFile] = false"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js","pre_context":[" }",""],"context_line":" next()","post_context":[" })",""]},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" // emit if listeners instead of responding"," if (hasListeners(this, 'error')) {"],"context_line":" return this.emit('error', createError(status, err, {","post_context":[" expose: false"," }))"]},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" case 'ENOENT':"," case 'ENOTDIR':"],"context_line":" this.error(404, error)","post_context":[" break"," default:"]},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (self._extensions.length <= i) {"," return err"],"context_line":" ? self.onStatError(err)","post_context":[" : self.error(404)"," }"]},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (err && err.code === 'ENOENT' && !extname(path) && path[path.length - 1] !== sep) {"," // not found, check extensions"],"context_line":" return next(err)","post_context":[" }"," if (err) return self.onStatError(err)"]},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}]},"culprit":" (server/coffee.js)"}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"version":"1.0.0"},"process":{"pid":441,"ppid":1,"title":"node /app/node_modules/.bin/workload","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js","-f",".workload.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"metricset":{"samples":{"system.cpu.total.norm.pct":{"value":0.9001193114027612},"system.memory.actual.free":{"value":7016820736},"system.memory.total":{"value":12544401408},"system.process.cpu.total.norm.pct":{"value":0},"system.process.cpu.system.norm.pct":{"value":0},"system.process.cpu.user.norm.pct":{"value":0},"system.process.memory.size":{"value":0},"system.process.memory.rss.bytes":{"value":0},"nodejs.handles.active":{"value":3},"nodejs.requests.active":{"value":3},"nodejs.eventloop.delay.avg.ms":{"value":0.9610062378854618},"nodejs.memory.heap.allocated.bytes":{"value":21704704},"nodejs.memory.heap.used.bytes":{"value":18010392},"nodejs.memory.external.bytes":{"value":1831358},"nodejs.memory.arrayBuffers.bytes":{"value":122566}},"timestamp":1646055636011000,"tags":{"hostname":"698fd446b62a","env":"production"}}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"framework":{"name":"express","version":"4.17.3"},"version":"1.0.0"},"process":{"pid":428,"ppid":1,"title":"node /app/server.js","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"transaction":{"name":"GET /log-error","type":"request","result":"HTTP 5xx","id":"ae39d417efc426e7","trace_id":"41e0ec39f19d4d4c25e84bdc01333084","duration":48.886,"timestamp":1646055637105019,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/log-error","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/log-error","full":"http://opbeans-node:3000/log-error"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":500,"headers":{"x-powered-by":"Express","content-type":"text/html; charset=utf-8","content-length":"24","etag":"W/\"18-MS3VbhH7auHMzO0fUuNF6v14N/M\"","date":"Mon, 28 Feb 2022 13:40:37 GMT","connection":"close"}}},"span_count":{"started":0},"outcome":"failure","sample_rate":1}} {"span":{"name":"GET","type":"cache","id":"1f415544d8612d46","transaction_id":"a602bf74f61d9b90","parent_id":"a602bf74f61d9b90","trace_id":"025499b1c2753ca8dfcedc2379e10099","subtype":"redis","action":null,"timestamp":1646055637300384,"duration":2.629,"context":{"destination":{"service":{"name":"redis","resource":"redis","type":"cache"},"address":"redis","port":6379}},"sync":false,"outcome":"success","sample_rate":1}} {"span":{"name":"SELECT FROM products","type":"db","id":"a5edc4ab0325a32a","transaction_id":"a602bf74f61d9b90","parent_id":"a602bf74f61d9b90","trace_id":"025499b1c2753ca8dfcedc2379e10099","subtype":"postgresql","action":"query","timestamp":1646055637304623,"duration":5.844,"context":{"db":{"statement":"SELECT p.id, p.sku, p.name, p.stock, t.name AS type_name FROM products p LEFT JOIN product_types t ON p.type_id=t.id","type":"sql"},"destination":{"service":{"name":"postgresql","resource":"postgresql","type":"db"},"address":"postgres","port":5432}},"sync":false,"outcome":"success","sample_rate":1}} @@ -1604,7 +1560,6 @@ {"transaction":{"name":"GET /api/types/:id","type":"request","result":"HTTP 2xx","id":"69a3e5d38e3ee49d","trace_id":"64dab799174ae2588a34ac39aa993e9e","parent_id":"be03c4c47b35b2c9","duration":25.348,"timestamp":1646055646928024,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/types/3","protocol":"http:","hostname":"opbeans-go","port":"3000","pathname":"/api/types/3","full":"http://opbeans-go:3000/api/types/3"},"headers":{"host":"opbeans-go:3000","user-agent":"Python/3.7 aiohttp/3.3.2","accept":"*/*","accept-encoding":"gzip, deflate","elastic-apm-traceparent":"00-64dab799174ae2588a34ac39aa993e9e-be03c4c47b35b2c9-01","traceparent":"00-64dab799174ae2588a34ac39aa993e9e-be03c4c47b35b2c9-01","tracestate":"es=s:1","x-forwarded-for":"172.23.0.14"},"socket":{"remote_address":"::ffff:172.23.0.9"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"application/json; charset=utf-8","content-length":"189","etag":"W/\"bd-0uDu9PtTLClFU3E2SJb37cpSxP4\"","date":"Mon, 28 Feb 2022 13:40:46 GMT","connection":"keep-alive","keep-alive":"timeout=5"}}},"span_count":{"started":2},"outcome":"success","sample_rate":1}} {"transaction":{"name":"GET /api","type":"request","result":"HTTP 2xx","id":"0deb9a662b0cca61","trace_id":"057ac3b2870ff4d0d2774390d162b38e","parent_id":"8333a2be02771f3e","duration":54.316,"timestamp":1646055647053042,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/types","protocol":"http:","hostname":"opbeans-go","port":"3000","pathname":"/api/types","full":"http://opbeans-go:3000/api/types"},"headers":{"host":"opbeans-go:3000","user-agent":"Python/3.7 aiohttp/3.3.2","accept":"*/*","accept-encoding":"gzip, deflate","elastic-apm-traceparent":"00-057ac3b2870ff4d0d2774390d162b38e-8333a2be02771f3e-01","traceparent":"00-057ac3b2870ff4d0d2774390d162b38e-8333a2be02771f3e-01","tracestate":"es=s:1","x-forwarded-for":"172.23.0.14"},"socket":{"remote_address":"::ffff:172.23.0.9"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-length":"112","content-type":"application/json; charset=utf-8","date":"Mon, 28 Feb 2022 13:40:47 GMT","referrer-policy":"same-origin","server":"gunicorn","vary":"Cookie","x-content-type-options":"nosniff","x-frame-options":"DENY","connection":"close"}}},"span_count":{"started":1},"outcome":"success","sample_rate":1}} {"span":{"name":"GET opbeans-go:3000","type":"external","id":"12e387d443cc4fcb","transaction_id":"0deb9a662b0cca61","parent_id":"0deb9a662b0cca61","trace_id":"057ac3b2870ff4d0d2774390d162b38e","subtype":"http","action":"GET","timestamp":1646055647059320,"duration":38.396,"context":{"http":{"method":"GET","status_code":200,"url":"http://opbeans-go:3000/api/types"},"destination":{"service":{"name":"http://opbeans-go:3000","resource":"opbeans-go:3000","type":"external"},"address":"opbeans-go","port":3000}},"stacktrace":[{"filename":"server.js","lineno":101,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" req.log.debug('proxying request: %s => %s:%s', req.originalUrl, opts.hostname, opts.port + opts.path)",""],"context_line":" const clientReq = http.request(opts)","post_context":[""," clientReq.on('response', clientRes => {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":641,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":260,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js"},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}],"sync":false,"outcome":"success","sample_rate":1}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"framework":{"name":"express","version":"4.17.3"},"version":"1.0.0"},"process":{"pid":428,"ppid":1,"title":"node /app/server.js","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"transaction":{"name":"GET /api","type":"request","result":"HTTP 2xx","id":"b293a0f806d23f65","trace_id":"6a059097c656b024627bee9b052ccf5b","duration":35.604,"timestamp":1646055647122020,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/products","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/api/products","full":"http://opbeans-node:3000/api/products"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"application/json; charset=utf-8","date":"Mon, 28 Feb 2022 13:40:47 GMT","connection":"close","transfer-encoding":"chunked"}}},"span_count":{"started":1},"outcome":"success","sample_rate":1}} {"span":{"name":"GET opbeans-go:3000","type":"external","id":"9ff3d31893fdaa8f","transaction_id":"b293a0f806d23f65","parent_id":"b293a0f806d23f65","trace_id":"6a059097c656b024627bee9b052ccf5b","subtype":"http","action":"GET","timestamp":1646055647126474,"duration":27.385,"context":{"http":{"method":"GET","status_code":200,"url":"http://opbeans-go:3000/api/products"},"destination":{"service":{"name":"http://opbeans-go:3000","resource":"opbeans-go:3000","type":"external"},"address":"opbeans-go","port":3000}},"stacktrace":[{"filename":"server.js","lineno":101,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" req.log.debug('proxying request: %s => %s:%s', req.originalUrl, opts.hostname, opts.port + opts.path)",""],"context_line":" const clientReq = http.request(opts)","post_context":[""," clientReq.on('response', clientRes => {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":641,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":260,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js"},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}],"sync":false,"outcome":"success","sample_rate":1}} {"transaction":{"name":"GET /api/customers/:id","type":"request","result":"HTTP 2xx","id":"7778bb19d1a5066d","trace_id":"d711a1f75a2138eaab2dd103d02fd4f2","parent_id":"afced30947a17350","duration":35.636,"timestamp":1646055647137026,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/customers/96","protocol":"http:","hostname":"opbeans-go","port":"3000","pathname":"/api/customers/96","full":"http://opbeans-go:3000/api/customers/96"},"headers":{"host":"opbeans-go:3000","user-agent":"Python/3.7 aiohttp/3.3.2","accept":"*/*","accept-encoding":"gzip, deflate","elastic-apm-traceparent":"00-d711a1f75a2138eaab2dd103d02fd4f2-afced30947a17350-01","traceparent":"00-d711a1f75a2138eaab2dd103d02fd4f2-afced30947a17350-01","tracestate":"es=s:1","x-forwarded-for":"172.23.0.14"},"socket":{"remote_address":"::ffff:172.23.0.9"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"application/json; charset=utf-8","content-length":"185","etag":"W/\"b9-mWXXbPC4ukVf3r6ExB2E7yjqPE4\"","date":"Mon, 28 Feb 2022 13:40:47 GMT","connection":"keep-alive","keep-alive":"timeout=5"}}},"span_count":{"started":1},"outcome":"success","sample_rate":1}} @@ -1700,7 +1655,6 @@ {"transaction":{"name":"GET /*","type":"request","result":"HTTP 2xx","id":"6301dc8f7986761d","trace_id":"00bae03986699010c3e502df4135359c","parent_id":"a2a473af46381af2","duration":18.854,"timestamp":1646055656620023,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/","full":"http://opbeans-node:3000/"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"text/html","content-length":"813","date":"Mon, 28 Feb 2022 13:40:56 GMT","connection":"close"}}},"span_count":{"started":0},"outcome":"success","sample_rate":1}} {"span":{"name":"SELECT FROM orders","type":"db","id":"d762f3a7b104cb32","transaction_id":"678abf38df874d08","parent_id":"678abf38df874d08","trace_id":"fb03ae0fd63fe205009402641b2bbe7f","subtype":"postgresql","action":"query","timestamp":1646055657146325,"duration":8.02,"context":{"db":{"statement":"SELECT * FROM orders WHERE id=$1","type":"sql"},"destination":{"service":{"name":"postgresql","resource":"postgresql","type":"db"},"address":"postgres","port":5432}},"sync":false,"outcome":"success","sample_rate":1}} {"transaction":{"name":"GET /api/orders/:id","type":"request","result":"HTTP 4xx","id":"678abf38df874d08","trace_id":"fb03ae0fd63fe205009402641b2bbe7f","duration":27.589,"timestamp":1646055657136026,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/orders/60","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/api/orders/60","full":"http://opbeans-node:3000/api/orders/60"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":404,"headers":{"x-powered-by":"Express","date":"Mon, 28 Feb 2022 13:40:57 GMT","connection":"close","content-length":"0"}}},"span_count":{"started":1},"outcome":"success","sample_rate":1}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"framework":{"name":"express","version":"4.17.3"},"version":"1.0.0"},"process":{"pid":428,"ppid":1,"title":"node /app/server.js","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"transaction":{"name":"GET /api","type":"request","result":"HTTP 2xx","id":"ab90c3d55d63b55d","trace_id":"fbd26c502daba0c49d01089fc2040701","duration":140.386,"timestamp":1646055657624028,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/customers","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/api/customers","full":"http://opbeans-node:3000/api/customers"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-length":"203686","content-type":"application/json","date":"Mon, 28 Feb 2022 13:40:57 GMT","referrer-policy":"same-origin","server":"gunicorn","vary":"Cookie","x-content-type-options":"nosniff","x-frame-options":"DENY","connection":"close"}}},"span_count":{"started":1},"outcome":"success","sample_rate":1}} {"span":{"name":"GET opbeans-go:3000","type":"external","id":"2abb1587060177c1","transaction_id":"ab90c3d55d63b55d","parent_id":"ab90c3d55d63b55d","trace_id":"fbd26c502daba0c49d01089fc2040701","subtype":"http","action":"GET","timestamp":1646055657633538,"duration":86.698,"context":{"http":{"method":"GET","status_code":200,"url":"http://opbeans-go:3000/api/customers"},"destination":{"service":{"name":"http://opbeans-go:3000","resource":"opbeans-go:3000","type":"external"},"address":"opbeans-go","port":3000}},"stacktrace":[{"filename":"server.js","lineno":101,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" req.log.debug('proxying request: %s => %s:%s', req.originalUrl, opts.hostname, opts.port + opts.path)",""],"context_line":" const clientReq = http.request(opts)","post_context":[""," clientReq.on('response', clientRes => {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":641,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":260,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js"},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}],"sync":false,"outcome":"success","sample_rate":1}} {"transaction":{"name":"GET /*","type":"request","result":"HTTP 2xx","id":"8e1b64464521d6ac","trace_id":"1f685458c771ab9b6acb3a30d47f6f15","parent_id":"cf94fb2ec035592b","duration":25.272,"timestamp":1646055658004056,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/","full":"http://opbeans-node:3000/"},"headers":{"host":"opbeans-node:3000","user-agent":"Wget","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"text/html","content-length":"813","date":"Mon, 28 Feb 2022 13:40:58 GMT","connection":"close"}}},"span_count":{"started":0},"outcome":"success","sample_rate":1}} @@ -1807,7 +1761,6 @@ {"span":{"name":"SELECT FROM products","type":"db","id":"1ad1646b518bc501","transaction_id":"e58a473e7ecd9e39","parent_id":"e58a473e7ecd9e39","trace_id":"18dedb08e351f8f68ddd9e14c33397d2","subtype":"postgresql","action":"query","timestamp":1646055665469530,"duration":4.599,"context":{"db":{"statement":"SELECT p.id, p.sku, p.name, p.stock, t.name AS type_name FROM products p LEFT JOIN product_types t ON p.type_id=t.id","type":"sql"},"destination":{"service":{"name":"postgresql","resource":"postgresql","type":"db"},"address":"postgres","port":5432}},"sync":false,"outcome":"success","sample_rate":1}} {"transaction":{"name":"GET /api/products","type":"request","result":"HTTP 2xx","id":"e58a473e7ecd9e39","trace_id":"18dedb08e351f8f68ddd9e14c33397d2","parent_id":"23c3ff423e1d95d6","duration":30.036,"timestamp":1646055665459023,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/products","protocol":"http:","hostname":"opbeans-go","port":"3000","pathname":"/api/products","full":"http://opbeans-go:3000/api/products"},"headers":{"host":"opbeans-go:3000","user-agent":"http.rb/5.0.4","elastic-apm-traceparent":"00-18dedb08e351f8f68ddd9e14c33397d2-23c3ff423e1d95d6-01","traceparent":"00-18dedb08e351f8f68ddd9e14c33397d2-23c3ff423e1d95d6-01","tracestate":"es=s:1.0","x-forwarded-for":"172.23.0.12","accept-encoding":"gzip"},"socket":{"remote_address":"::ffff:172.23.0.9"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"application/json; charset=utf-8","content-length":"1023","etag":"W/\"3ff-VyOxcDApb+a/lnjkm9FeTOGSDrs\"","date":"Mon, 28 Feb 2022 13:41:05 GMT","connection":"keep-alive","keep-alive":"timeout=5"}}},"span_count":{"started":2},"outcome":"success","sample_rate":1}} {"error":{"id":"89f9d8cb58e7d85e095348a29af652cc","timestamp":1646055665638000,"parent_id":"0be912ffdf09d7a6","trace_id":"8f2fb664f8d4d7eb5578ebeb9e4f167b","transaction_id":"0be912ffdf09d7a6","transaction":{"name":"GET unknown route (unnamed)","type":"request","sampled":true},"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/log-error","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/log-error","full":"http://opbeans-node:3000/log-error"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{},"headers_sent":false,"finished":false}},"exception":{"message":"foo","type":"Error","handled":true,"stacktrace":[{"filename":"server/coffee.js","lineno":17,"function":"","library_frame":false,"abs_path":"/app/server/coffee.js","pre_context":["","app.get('/log-error', function (req, res) {"],"context_line":" apm.captureError(new Error('foo'), function (err) {","post_context":[" if (err) {"," res.status(500).send('could not capture error: ' + err.message)"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/route.js","lineno":137,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" layer.handle_error(err, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/route.js","lineno":112,"function":"dispatch","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/route.js","pre_context":[" req.route = this;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":281,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," if (route) {"],"context_line":" return layer.handle_request(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" req.originalUrl = req.originalUrl || req.url;",""],"context_line":" next();","post_context":[""," function next(err) {"]},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," function router(req, res, next) {"],"context_line":" router.handle(req, res, next);","post_context":[" }",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":60,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" }",""],"context_line":" return orig.apply(this, arguments)","post_context":[" }"," } else {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js","pre_context":[""," try {"],"context_line":" fn(req, res, next);","post_context":[" } catch (err) {"," next(err);"]},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" layer.handle_error(layerError, req, res, next);"," } else {"],"context_line":" layer.handle_request(req, res, next);","post_context":[" }"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" }",""],"context_line":" trim_prefix(layer, layerError, layerPath, path);","post_context":[" });"," }"]},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[" // fast track"," if (!keys || keys.length === 0) {"],"context_line":" return done();","post_context":[" }",""]},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js","pre_context":[""," // this should be done for the layer"],"context_line":" self.process_params(layer, paramcalled, req, res, function (err) {","post_context":[" if (err) {"," return next(layerError || err);"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":56,"function":"arguments.","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" req[symbols.expressMountStack].pop()"," }"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","lineno":126,"function":"nextHook","library_frame":true,"abs_path":"/app/node_modules/elastic-apm-node/lib/instrumentation/modules/express.js","pre_context":[" function nextHook (err) {"," if (!err) req[symbols.staticFile] = false"],"context_line":" return next.apply(this, arguments)","post_context":[" }"," }"]},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js","pre_context":[" }",""],"context_line":" next()","post_context":[" })",""]},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" // emit if listeners instead of responding"," if (hasListeners(this, 'error')) {"],"context_line":" return this.emit('error', createError(status, err, {","post_context":[" expose: false"," }))"]},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" case 'ENOENT':"," case 'ENOTDIR':"],"context_line":" this.error(404, error)","post_context":[" break"," default:"]},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (self._extensions.length <= i) {"," return err"],"context_line":" ? self.onStatError(err)","post_context":[" : self.error(404)"," }"]},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js","pre_context":[" if (err && err.code === 'ENOENT' && !extname(path) && path[path.length - 1] !== sep) {"," // not found, check extensions"],"context_line":" return next(err)","post_context":[" }"," if (err) return self.onStatError(err)"]},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}]},"culprit":" (server/coffee.js)"}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"framework":{"name":"express","version":"4.17.3"},"version":"1.0.0"},"process":{"pid":428,"ppid":1,"title":"node /app/server.js","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"transaction":{"name":"GET /log-error","type":"request","result":"HTTP 5xx","id":"0be912ffdf09d7a6","trace_id":"8f2fb664f8d4d7eb5578ebeb9e4f167b","duration":92.794,"timestamp":1646055665630022,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/log-error","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/log-error","full":"http://opbeans-node:3000/log-error"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":500,"headers":{"x-powered-by":"Express","content-type":"text/html; charset=utf-8","content-length":"24","etag":"W/\"18-MS3VbhH7auHMzO0fUuNF6v14N/M\"","date":"Mon, 28 Feb 2022 13:41:05 GMT","connection":"close"}}},"span_count":{"started":0},"outcome":"failure","sample_rate":1}} {"span":{"name":"SELECT FROM customers","type":"db","id":"ea6200d1cff89ea1","transaction_id":"94071b3f7a60ca9c","parent_id":"94071b3f7a60ca9c","trace_id":"3296fe7a8fe74bf58c9f9c594b92d8b3","subtype":"postgresql","action":"query","timestamp":1646055666171228,"duration":5.486,"context":{"db":{"statement":"SELECT * FROM customers WHERE id=$1","type":"sql"},"destination":{"service":{"name":"postgresql","resource":"postgresql","type":"db"},"address":"postgres","port":5432}},"sync":false,"outcome":"success","sample_rate":1}} {"transaction":{"name":"GET /api/customers/:id","type":"request","result":"HTTP 2xx","id":"94071b3f7a60ca9c","trace_id":"3296fe7a8fe74bf58c9f9c594b92d8b3","duration":24.187,"timestamp":1646055666157071,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/customers/296","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/api/customers/296","full":"http://opbeans-node:3000/api/customers/296"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"application/json; charset=utf-8","content-length":"189","etag":"W/\"bd-s5scQCpX0vv0RfF+zUK7Q0VCj3A\"","date":"Mon, 28 Feb 2022 13:41:06 GMT","connection":"close"}}},"span_count":{"started":1},"outcome":"success","sample_rate":1}} @@ -1925,9 +1878,7 @@ {"span":{"name":"GET opbeans-go:3000","type":"external","id":"ff92546361c76f8e","transaction_id":"48ae037f74d145e7","parent_id":"48ae037f74d145e7","trace_id":"9591ba4869bb5fd3a8a934420f9bb3eb","subtype":"http","action":"GET","timestamp":1646055675544592,"duration":10.769,"context":{"http":{"method":"GET","status_code":200,"url":"http://opbeans-go:3000/api/products/3"},"destination":{"service":{"name":"http://opbeans-go:3000","resource":"opbeans-go:3000","type":"external"},"address":"opbeans-go","port":3000}},"stacktrace":[{"filename":"server.js","lineno":101,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" req.log.debug('proxying request: %s => %s:%s', req.originalUrl, opts.hostname, opts.port + opts.path)",""],"context_line":" const clientReq = http.request(opts)","post_context":[""," clientReq.on('response', clientRes => {"]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":641,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":260,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":174,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":47,"function":"router","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"server.js","lineno":80,"function":"","library_frame":false,"abs_path":"/app/server.js","pre_context":[" })",""],"context_line":" next()","post_context":["})",""]},{"filename":"node_modules/express/lib/router/layer.js","lineno":95,"function":"handle","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/layer.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":323,"function":"trim_prefix","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":284,"function":"","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":341,"function":"process_params","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/express/lib/router/index.js","lineno":275,"function":"next","library_frame":true,"abs_path":"/app/node_modules/express/lib/router/index.js"},{"filename":"node_modules/serve-static/index.js","lineno":121,"function":"error","library_frame":true,"abs_path":"/app/node_modules/serve-static/index.js"},{"filename":"events.js","lineno":400,"function":"emit","library_frame":true,"abs_path":"events.js"},{"filename":"node_modules/send/index.js","lineno":270,"function":"error","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":421,"function":"onStatError","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":735,"function":"next","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"node_modules/send/index.js","lineno":724,"function":"onstat","library_frame":true,"abs_path":"/app/node_modules/send/index.js"},{"filename":"fs.js","lineno":191,"function":"FSReqCallback.oncomplete","library_frame":true,"abs_path":"fs.js"},{"filename":"internal/async_hooks.js","lineno":130,"function":"callbackTrampoline","library_frame":true,"abs_path":"internal/async_hooks.js"}],"sync":false,"outcome":"success","sample_rate":1}} {"transaction":{"name":"GET /api/products/:id/customers","type":"request","result":"HTTP 2xx","id":"af14a331112ccf72","trace_id":"f1f60e0cb72c39001363a0336a151e02","duration":62.953,"timestamp":1646055675663038,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/products/5/customers?count=orders&limit=50","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/api/products/5/customers","search":"?count=orders&limit=50","full":"http://opbeans-node:3000/api/products/5/customers?count=orders&limit=50"},"headers":{"user-agent":"workload/2.4.3","host":"opbeans-node:3000","connection":"close"},"socket":{"remote_address":"::ffff:172.23.0.10"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"application/json; charset=utf-8","content-length":"2","etag":"W/\"2-l9Fw4VUO7kr8CvBlt4zaMCqXZ0w\"","date":"Mon, 28 Feb 2022 13:41:15 GMT","connection":"close"}}},"span_count":{"started":1},"outcome":"success","sample_rate":1}} {"span":{"name":"SELECT FROM customers","type":"db","id":"86747462a0f19ac9","transaction_id":"af14a331112ccf72","parent_id":"af14a331112ccf72","trace_id":"f1f60e0cb72c39001363a0336a151e02","subtype":"postgresql","action":"query","timestamp":1646055675697421,"duration":11.394,"context":{"db":{"statement":"SELECT c.* FROM customers c LEFT JOIN orders o ON c.id=o.customer_id LEFT JOIN order_lines l ON o.id=l.order_id LEFT JOIN products p ON l.product_id=p.id WHERE p.id=$1 LIMIT $2","type":"sql"},"destination":{"service":{"name":"postgresql","resource":"postgresql","type":"db"},"address":"postgres","port":5432}},"stacktrace":[{"filename":"node_modules/pg-pool/index.js","lineno":406,"function":"PendingItem.callback","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":298,"function":"_acquireClient","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":146,"function":"_pulseQueue","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"node_modules/pg-pool/index.js","lineno":179,"function":"","library_frame":true,"abs_path":"/app/node_modules/pg-pool/index.js"},{"filename":"internal/process/task_queues.js","lineno":77,"function":"processTicksAndRejections","library_frame":true,"abs_path":"internal/process/task_queues.js"}],"sync":false,"outcome":"success","sample_rate":1}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"version":"1.0.0"},"process":{"pid":441,"ppid":1,"title":"node /app/node_modules/.bin/workload","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js","-f",".workload.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"metricset":{"samples":{"system.cpu.total.norm.pct":{"value":0.8871976999830881},"system.memory.actual.free":{"value":6961115136},"system.memory.total":{"value":12544401408},"system.process.cpu.total.norm.pct":{"value":0},"system.process.cpu.system.norm.pct":{"value":0},"system.process.cpu.user.norm.pct":{"value":0},"system.process.memory.size":{"value":0},"system.process.memory.rss.bytes":{"value":0},"nodejs.handles.active":{"value":3},"nodejs.requests.active":{"value":3},"nodejs.eventloop.delay.avg.ms":{"value":0.6123727518584072},"nodejs.memory.heap.allocated.bytes":{"value":17321984},"nodejs.memory.heap.used.bytes":{"value":15071376},"nodejs.memory.external.bytes":{"value":1746310},"nodejs.memory.arrayBuffers.bytes":{"value":37518}},"timestamp":1646055666010000,"tags":{"hostname":"698fd446b62a","env":"production"}}} -{"metadata":{"service":{"name":"opbeans-node","environment":"production","runtime":{"name":"node","version":"14.19.0"},"language":{"name":"javascript"},"agent":{"name":"nodejs","version":"3.29.0"},"framework":{"name":"express","version":"4.17.3"},"version":"1.0.0"},"process":{"pid":428,"ppid":1,"title":"node /app/server.js","argv":["/usr/local/bin/node","/usr/local/lib/node_modules/pm2/lib/ProcessContainer.js","ecosystem-workload.config.js"]},"system":{"hostname":"698fd446b62a","architecture":"x64","platform":"linux"}}} {"span":{"name":"GET","type":"cache","id":"570cd147560d9590","transaction_id":"d9d4949bdf0c2e25","parent_id":"d9d4949bdf0c2e25","trace_id":"8c4520e4f568f760d79f006c2b14e385","subtype":"redis","action":null,"timestamp":1646055675753569,"duration":5.207,"context":{"destination":{"service":{"name":"redis","resource":"redis","type":"cache"},"address":"redis","port":6379}},"sync":false,"outcome":"success","sample_rate":1}} {"span":{"name":"SELECT FROM product_types","type":"db","id":"805c7d798b6d0649","transaction_id":"d9d4949bdf0c2e25","parent_id":"d9d4949bdf0c2e25","trace_id":"8c4520e4f568f760d79f006c2b14e385","subtype":"postgresql","action":"query","timestamp":1646055675766409,"duration":6.836,"context":{"db":{"statement":"SELECT * FROM product_types","type":"sql"},"destination":{"service":{"name":"postgresql","resource":"postgresql","type":"db"},"address":"postgres","port":5432}},"sync":false,"outcome":"success","sample_rate":1}} {"transaction":{"name":"GET /api/types","type":"request","result":"HTTP 2xx","id":"d9d4949bdf0c2e25","trace_id":"8c4520e4f568f760d79f006c2b14e385","parent_id":"b4c2f5acc6b9139c","duration":48.887,"timestamp":1646055675740097,"sampled":true,"context":{"user":{"id":42,"username":"kimchy","email":"kimchy@elastic.co"},"tags":{"foo":"bar","lorem":"ipsum dolor sit amet, consectetur adipiscing elit. Nulla finibus, ipsum id scelerisque consequat, enim leo vulputate massa, vel ultricies ante neque ac risus. Curabitur tincidunt vitae sapien id pulvinar. Mauris eu vestibulum tortor. Integer sit amet lorem fringilla, egestas tellus vitae, vulputate purus. Nulla feugiat blandit nunc et semper. Morbi purus libero, mattis sed mauris non, euismod iaculis lacus. Curabitur eleifend ante eros, non faucibus velit lacinia id. Duis posuere libero augue, at dignissim urna consectetur eget. Praesent eu congue est, iaculis finibus augue.","this-is-a-very-long-tag-name-without-any-spaces":"test","multi-line":"foo\nbar\nbaz"},"custom":{"shoppingBasketCount":42},"service":{},"cloud":{},"message":{},"request":{"http_version":"1.1","method":"GET","url":{"raw":"/api/types","protocol":"http:","hostname":"opbeans-node","port":"3000","pathname":"/api/types","full":"http://opbeans-node:3000/api/types"},"headers":{"host":"opbeans-node:3000","user-agent":"python-requests/2.27.1","accept-encoding":"gzip, deflate","accept":"*/*","connection":"keep-alive","traceparent":"00-8c4520e4f568f760d79f006c2b14e385-b4c2f5acc6b9139c-01","elastic-apm-traceparent":"00-8c4520e4f568f760d79f006c2b14e385-b4c2f5acc6b9139c-01","tracestate":"es=s:1"},"socket":{"remote_address":"::ffff:172.23.0.11"}},"response":{"status_code":200,"headers":{"x-powered-by":"Express","content-type":"application/json; charset=utf-8","content-length":"112","etag":"W/\"70-1z6hT7P1WHgBgS/BeUEVeHhOCQU\"","date":"Mon, 28 Feb 2022 13:41:15 GMT","connection":"keep-alive","keep-alive":"timeout=5"}}},"span_count":{"started":2},"outcome":"success","sample_rate":1}} diff --git a/internal/loadgen/events/python-6.7.2.ndjson b/internal/loadgen/events/python-6.7.2.ndjson index 4e9374c..749bca0 100644 --- a/internal/loadgen/events/python-6.7.2.ndjson +++ b/internal/loadgen/events/python-6.7.2.ndjson @@ -5,28 +5,24 @@ {"metricset": {"samples": {"prometheus.metrics.process_cpu_seconds": {"value": 0.0}, "prometheus.metrics.opbeans_python_line_items": {"value": 0.0}, "prometheus.metrics.process_virtual_memory_bytes": {"value": 0.0, "type": "gauge"}, "prometheus.metrics.process_resident_memory_bytes": {"value": 0.0, "type": "gauge"}, "prometheus.metrics.process_start_time_seconds": {"value": 1645917773.0, "type": "gauge"}, "prometheus.metrics.process_open_fds": {"value": 5, "type": "gauge"}, "prometheus.metrics.process_max_fds": {"value": 1048576.0, "type": "gauge"}, "prometheus.metrics.opbeans_python_orders.sum": {"value": 0.0}, "prometheus.metrics.opbeans_python_orders.count": {"value": 0.0}}, "timestamp": 1646055425438905}} {"metricset": {"samples": {"prometheus.metrics.python_info": {"value": 1, "type": "gauge"}}, "timestamp": 1646055425438905, "tags": {"implementation": "CPython", "major": "3", "minor": "10", "patchlevel": "2", "version": "3.10.2"}}} {"metricset": {"samples": {"prometheus.metrics.django_migrations_unapplied_total": {"value": 0.0, "type": "gauge"}, "prometheus.metrics.django_migrations_applied_total": {"value": 20.0, "type": "gauge"}}, "timestamp": 1646055425438905, "tags": {"connection": "default"}}} -{"metadata": {"service": {"name": "opbeans-python", "environment": "production", "version": "None", "agent": {"name": "python", "version": "6.7.2"}, "language": {"name": "python", "version": "3.10.2"}, "runtime": {"name": "CPython", "version": "3.10.2"}, "framework": {"name": "django", "version": "3.2.11"}}, "process": {"pid": 49, "ppid": 1, "argv": ["manage.py", "sqlsequencereset", "opbeans"], "title": null}, "system": {"hostname": "88abe6e3ded4", "architecture": "x86_64", "platform": "linux"}}} {"metricset": {"samples": {"system.cpu.total.norm.pct": {"value": 0.9923664122137404, "type": "gauge"}, "system.memory.actual.free": {"value": 8276615168, "type": "gauge"}, "system.memory.total": {"value": 12544401408, "type": "gauge"}, "system.process.cpu.total.norm.pct": {"value": 0.0, "type": "gauge"}, "system.process.memory.size": {"value": 0, "type": "gauge"}, "system.process.memory.rss.bytes": {"value": 0, "type": "gauge"}}, "timestamp": 1646055434611468}} {"metricset": {"samples": {"prometheus.metrics.python_gc_objects_collected": {"value": 736}, "prometheus.metrics.python_gc_objects_uncollectable": {"value": 0}, "prometheus.metrics.python_gc_collections": {"value": 202}}, "timestamp": 1646055434626369, "tags": {"generation": "0"}}} {"metricset": {"samples": {"prometheus.metrics.python_gc_objects_collected": {"value": 10}, "prometheus.metrics.python_gc_objects_uncollectable": {"value": 0}, "prometheus.metrics.python_gc_collections": {"value": 1}}, "timestamp": 1646055434626369, "tags": {"generation": "2"}}} {"metricset": {"samples": {"prometheus.metrics.process_cpu_seconds": {"value": 0.0}, "prometheus.metrics.opbeans_python_line_items": {"value": 0.0}, "prometheus.metrics.process_virtual_memory_bytes": {"value": 0.0, "type": "gauge"}, "prometheus.metrics.process_resident_memory_bytes": {"value": 0.0, "type": "gauge"}, "prometheus.metrics.process_start_time_seconds": {"value": 1645917773.0, "type": "gauge"}, "prometheus.metrics.process_open_fds": {"value": 5, "type": "gauge"}, "prometheus.metrics.process_max_fds": {"value": 1048576.0, "type": "gauge"}, "prometheus.metrics.opbeans_python_orders.sum": {"value": 0.0}, "prometheus.metrics.opbeans_python_orders.count": {"value": 0.0}}, "timestamp": 1646055434626369}} {"metricset": {"samples": {"prometheus.metrics.python_info": {"value": 1, "type": "gauge"}}, "timestamp": 1646055434626369, "tags": {"implementation": "CPython", "major": "3", "minor": "10", "patchlevel": "2", "version": "3.10.2"}}} {"metricset": {"samples": {"prometheus.metrics.django_migrations_unapplied_total": {"value": 0.0, "type": "gauge"}, "prometheus.metrics.django_migrations_applied_total": {"value": 20.0, "type": "gauge"}}, "timestamp": 1646055434626369, "tags": {"connection": "default"}}} -{"metadata": {"service": {"name": "opbeans-python", "environment": "production", "version": "None", "agent": {"name": "python", "version": "6.7.2"}, "language": {"name": "python", "version": "3.10.2"}, "runtime": {"name": "CPython", "version": "3.10.2"}, "framework": {"name": "django", "version": "3.2.11"}}, "process": {"pid": 51, "ppid": 1, "argv": ["manage.py", "dbshell"], "title": null}, "system": {"hostname": "88abe6e3ded4", "architecture": "x86_64", "platform": "linux"}}} {"metricset": {"samples": {"system.cpu.total.norm.pct": {"value": 0.986400725294651, "type": "gauge"}, "system.memory.actual.free": {"value": 8364634112, "type": "gauge"}, "system.memory.total": {"value": 12544401408, "type": "gauge"}, "system.process.cpu.total.norm.pct": {"value": 0.0, "type": "gauge"}, "system.process.memory.size": {"value": 0, "type": "gauge"}, "system.process.memory.rss.bytes": {"value": 0, "type": "gauge"}}, "timestamp": 1646055434932308}} {"metricset": {"samples": {"prometheus.metrics.python_gc_objects_collected": {"value": 701}, "prometheus.metrics.python_gc_objects_uncollectable": {"value": 0}, "prometheus.metrics.python_gc_collections": {"value": 195}}, "timestamp": 1646055434949085, "tags": {"generation": "0"}}} {"metricset": {"samples": {"prometheus.metrics.python_gc_objects_collected": {"value": 10}, "prometheus.metrics.python_gc_objects_uncollectable": {"value": 0}, "prometheus.metrics.python_gc_collections": {"value": 1}}, "timestamp": 1646055434949085, "tags": {"generation": "2"}}} {"metricset": {"samples": {"prometheus.metrics.process_cpu_seconds": {"value": 0.0}, "prometheus.metrics.process_virtual_memory_bytes": {"value": 0.0, "type": "gauge"}, "prometheus.metrics.process_resident_memory_bytes": {"value": 0.0, "type": "gauge"}, "prometheus.metrics.process_start_time_seconds": {"value": 1645917773.0, "type": "gauge"}, "prometheus.metrics.process_open_fds": {"value": 5, "type": "gauge"}, "prometheus.metrics.process_max_fds": {"value": 1048576.0, "type": "gauge"}}, "timestamp": 1646055434949085}} {"metricset": {"samples": {"prometheus.metrics.python_info": {"value": 1, "type": "gauge"}}, "timestamp": 1646055434949085, "tags": {"implementation": "CPython", "major": "3", "minor": "10", "patchlevel": "2", "version": "3.10.2"}}} {"metricset": {"samples": {"prometheus.metrics.django_migrations_unapplied_total": {"value": 0.0, "type": "gauge"}, "prometheus.metrics.django_migrations_applied_total": {"value": 20.0, "type": "gauge"}}, "timestamp": 1646055434949085, "tags": {"connection": "default"}}} -{"metadata": {"service": {"name": "opbeans-python", "environment": "production", "version": "None", "agent": {"name": "python", "version": "6.7.2"}, "language": {"name": "python", "version": "3.10.2"}, "runtime": {"name": "CPython", "version": "3.10.2"}, "framework": {"name": "django", "version": "3.2.11"}}, "process": {"pid": 119, "ppid": 109, "argv": ["/app/venv/bin/gunicorn", "--workers", "4", "--bind", "0.0.0.0:3000", "opbeans.wsgi"], "title": null}, "system": {"hostname": "88abe6e3ded4", "architecture": "x86_64", "platform": "linux"}}} {"span": {"id": "b96efb7590766c67", "transaction_id": "27a8935936938522", "trace_id": "525282df3064f4e30754248caa7e512d", "parent_id": "27a8935936938522", "name": "hard-home-work", "type": "code", "subtype": "custom", "action": null, "timestamp": 1646055450293955, "duration": 128.25604202225804, "outcome": "success", "sample_rate": 1.0, "stacktrace": [{"abs_path": "/app/opbeans/views.py", "filename": "opbeans/views.py", "module": "opbeans.views", "function": "home", "lineno": 308, "library_frame": false, "pre_context": ["", "def home(request):"], "context_line": " with elasticapm.capture_span(\"hard-home-work\"):", "post_context": [" time.sleep(random.random() / 2.0)", " return render(request, \"index.html\")"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "_get_response", "lineno": 181, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/whitenoise/middleware.py", "filename": "whitenoise/middleware.py", "module": "whitenoise.middleware", "function": "__call__", "lineno": 60, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "get_response", "lineno": 130, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/wsgi.py", "filename": "django/core/handlers/wsgi.py", "module": "django.core.handlers.wsgi", "function": "__call__", "lineno": 133, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle_request", "lineno": 179, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle", "lineno": 136, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "accept", "lineno": 31, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run_for_one", "lineno": 69, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run", "lineno": 125, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/base.py", "filename": "gunicorn/workers/base.py", "module": "gunicorn.workers.base", "function": "init_process", "lineno": 142, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_worker", "lineno": 589, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_workers", "lineno": 622, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "manage_workers", "lineno": 551, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "run", "lineno": 202, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 72, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 231, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/wsgiapp.py", "filename": "gunicorn/app/wsgiapp.py", "module": "gunicorn.app.wsgiapp", "function": "run", "lineno": 67, "library_frame": true}, {"abs_path": "/app/venv/bin/gunicorn", "filename": "bin/gunicorn", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(run())", "post_context": []}]}} {"span": {"id": "8d63d0728a0a88d0", "transaction_id": "27a8935936938522", "trace_id": "525282df3064f4e30754248caa7e512d", "parent_id": "27a8935936938522", "name": "index.html", "type": "template", "subtype": "django", "action": "render", "timestamp": 1646055450623459, "duration": 99.93279198533855, "outcome": "success", "sample_rate": 1.0, "stacktrace": [{"abs_path": "/app/venv/lib/python3.10/site-packages/django/template/backends/django.py", "filename": "django/template/backends/django.py", "module": "django.template.backends.django", "function": "render", "lineno": 61, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/template/loader.py", "filename": "django/template/loader.py", "module": "django.template.loader", "function": "render_to_string", "lineno": 62, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/shortcuts.py", "filename": "django/shortcuts.py", "module": "django.shortcuts", "function": "render", "lineno": 19, "library_frame": true}, {"abs_path": "/app/opbeans/views.py", "filename": "opbeans/views.py", "module": "opbeans.views", "function": "home", "lineno": 310, "library_frame": false, "pre_context": [" with elasticapm.capture_span(\"hard-home-work\"):", " time.sleep(random.random() / 2.0)"], "context_line": " return render(request, \"index.html\")", "post_context": ["", ""]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "_get_response", "lineno": 181, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/whitenoise/middleware.py", "filename": "whitenoise/middleware.py", "module": "whitenoise.middleware", "function": "__call__", "lineno": 60, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "get_response", "lineno": 130, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/wsgi.py", "filename": "django/core/handlers/wsgi.py", "module": "django.core.handlers.wsgi", "function": "__call__", "lineno": 133, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle_request", "lineno": 179, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle", "lineno": 136, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "accept", "lineno": 31, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run_for_one", "lineno": 69, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run", "lineno": 125, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/base.py", "filename": "gunicorn/workers/base.py", "module": "gunicorn.workers.base", "function": "init_process", "lineno": 142, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_worker", "lineno": 589, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_workers", "lineno": 622, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "manage_workers", "lineno": 551, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "run", "lineno": 202, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 72, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 231, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/wsgiapp.py", "filename": "gunicorn/app/wsgiapp.py", "module": "gunicorn.app.wsgiapp", "function": "run", "lineno": 67, "library_frame": true}, {"abs_path": "/app/venv/bin/gunicorn", "filename": "bin/gunicorn", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(run())", "post_context": []}]}} {"transaction": {"id": "27a8935936938522", "trace_id": "525282df3064f4e30754248caa7e512d", "name": "GET opbeans.views.home", "type": "request", "duration": 1343.2700420089532, "result": "HTTP 2xx", "timestamp": 1646055449420578, "outcome": "success", "sampled": true, "span_count": {"started": 2, "dropped": 0}, "sample_rate": 1.0, "parent_id": "000c26044c9b0607", "context": {"request": {"env": {"REMOTE_ADDR": "172.23.0.11", "SERVER_NAME": "0.0.0.0", "SERVER_PORT": "3000"}, "method": "GET", "socket": {"remote_address": "172.23.0.11"}, "cookies": {}, "headers": {"host": "opbeans-python:3000", "user-agent": "curl/7.74.0", "accept": "*/*"}, "url": {"full": "http://opbeans-python:3000/", "protocol": "http:", "hostname": "opbeans-python", "pathname": "/", "port": "3000"}}, "response": {"status_code": 200, "headers": {"Content-Type": "text/html; charset=utf-8", "X-Frame-Options": "DENY", "Content-Length": "871", "Vary": "Cookie", "X-Content-Type-Options": "nosniff", "Referrer-Policy": "same-origin"}}, "user": {"is_authenticated": true, "id": 4, "username": "ooneal", "email": "ooneal@barnett.com"}, "tags": {"request_id": "b3768225-a7e3-4568-83a6-fe7ad0a6d051", "customer_tier": "$"}}}} {"span": {"id": "623013bbe5cd5c92", "transaction_id": "865ade12f5d3129b", "trace_id": "ee8d9ad179319220cf639b1d5aff5996", "parent_id": "865ade12f5d3129b", "name": "SELECT FROM opbeans_order", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055455324550, "duration": 5.130832985742018, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT \"opbeans_order\".\"id\", \"opbeans_order\".\"customer_id\", \"opbeans_order\".\"created_at\" FROM \"opbeans_order\" WHERE \"opbeans_order\".\"id\" = %s LIMIT 21"}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}, "stacktrace": [{"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/backends/utils.py", "filename": "django/db/backends/utils.py", "module": "django.db.backends.utils", "function": "_execute_with_wrappers", "lineno": 75, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/backends/utils.py", "filename": "django/db/backends/utils.py", "module": "django.db.backends.utils", "function": "execute", "lineno": 66, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/sql/compiler.py", "filename": "django/db/models/sql/compiler.py", "module": "django.db.models.sql.compiler", "function": "execute_sql", "lineno": 1175, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/query.py", "filename": "django/db/models/query.py", "module": "django.db.models.query", "function": "__iter__", "lineno": 51, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/query.py", "filename": "django/db/models/query.py", "module": "django.db.models.query", "function": "_fetch_all", "lineno": 1324, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/query.py", "filename": "django/db/models/query.py", "module": "django.db.models.query", "function": "__len__", "lineno": 262, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/query.py", "filename": "django/db/models/query.py", "module": "django.db.models.query", "function": "get", "lineno": 431, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/shortcuts.py", "filename": "django/shortcuts.py", "module": "django.shortcuts", "function": "get_object_or_404", "lineno": 76, "library_frame": true}, {"abs_path": "/app/opbeans/views.py", "filename": "opbeans/views.py", "module": "opbeans.views", "function": "order", "lineno": 272, "library_frame": false, "pre_context": ["", "def order(request, pk):"], "context_line": " order_obj = get_object_or_404(m.Order, pk=pk)", "post_context": [" lines = list(order_obj.orderline_set.values(", " 'product_id', 'amount', 'product__sku', 'product__name', 'product__description', 'product__product_type_id',"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "_get_response", "lineno": 181, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/whitenoise/middleware.py", "filename": "whitenoise/middleware.py", "module": "whitenoise.middleware", "function": "__call__", "lineno": 60, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "get_response", "lineno": 130, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/wsgi.py", "filename": "django/core/handlers/wsgi.py", "module": "django.core.handlers.wsgi", "function": "__call__", "lineno": 133, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle_request", "lineno": 179, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle", "lineno": 136, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "accept", "lineno": 31, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run_for_one", "lineno": 69, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run", "lineno": 125, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/base.py", "filename": "gunicorn/workers/base.py", "module": "gunicorn.workers.base", "function": "init_process", "lineno": 142, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_worker", "lineno": 589, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_workers", "lineno": 622, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "manage_workers", "lineno": 551, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "run", "lineno": 202, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 72, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 231, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/wsgiapp.py", "filename": "gunicorn/app/wsgiapp.py", "module": "gunicorn.app.wsgiapp", "function": "run", "lineno": 67, "library_frame": true}, {"abs_path": "/app/venv/bin/gunicorn", "filename": "bin/gunicorn", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(run())", "post_context": []}]}} {"span": {"id": "ab970ec65cb80c37", "transaction_id": "865ade12f5d3129b", "trace_id": "ee8d9ad179319220cf639b1d5aff5996", "parent_id": "865ade12f5d3129b", "name": "SELECT FROM opbeans_orderline", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055455347935, "duration": 8.842874987749383, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT \"opbeans_orderline\".\"product_id\", \"opbeans_orderline\".\"amount\", \"opbeans_product\".\"sku\", \"opbeans_product\".\"name\", \"opbeans_product\".\"description\", \"opbeans_product\".\"product_type_id\", \"opbeans_product\".\"stock\", \"opbeans_product\".\"cost\", \"opbeans_product\".\"selling_price\" FROM \"opbeans_orderline\" INNER JOIN \"opbeans_product\" ON (\"opbeans_orderline\".\"product_id\" = \"opbeans_product\".\"id\") WHERE \"opbeans_orderline\".\"order_id\" = %s"}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}, "stacktrace": [{"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/backends/utils.py", "filename": "django/db/backends/utils.py", "module": "django.db.backends.utils", "function": "_execute_with_wrappers", "lineno": 75, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/backends/utils.py", "filename": "django/db/backends/utils.py", "module": "django.db.backends.utils", "function": "execute", "lineno": 66, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/sql/compiler.py", "filename": "django/db/models/sql/compiler.py", "module": "django.db.models.sql.compiler", "function": "execute_sql", "lineno": 1175, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/sql/compiler.py", "filename": "django/db/models/sql/compiler.py", "module": "django.db.models.sql.compiler", "function": "results_iter", "lineno": 1130, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/query.py", "filename": "django/db/models/query.py", "module": "django.db.models.query", "function": "__iter__", "lineno": 109, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/query.py", "filename": "django/db/models/query.py", "module": "django.db.models.query", "function": "_fetch_all", "lineno": 1324, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/query.py", "filename": "django/db/models/query.py", "module": "django.db.models.query", "function": "__len__", "lineno": 262, "library_frame": true}, {"abs_path": "/app/opbeans/views.py", "filename": "opbeans/views.py", "module": "opbeans.views", "function": "order", "lineno": 273, "library_frame": false, "pre_context": ["def order(request, pk):", " order_obj = get_object_or_404(m.Order, pk=pk)"], "context_line": " lines = list(order_obj.orderline_set.values(", "post_context": [" 'product_id', 'amount', 'product__sku', 'product__name', 'product__description', 'product__product_type_id',", " 'product__stock', 'product__cost', 'product__selling_price',"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "_get_response", "lineno": 181, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/whitenoise/middleware.py", "filename": "whitenoise/middleware.py", "module": "whitenoise.middleware", "function": "__call__", "lineno": 60, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "get_response", "lineno": 130, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/wsgi.py", "filename": "django/core/handlers/wsgi.py", "module": "django.core.handlers.wsgi", "function": "__call__", "lineno": 133, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle_request", "lineno": 179, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle", "lineno": 136, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "accept", "lineno": 31, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run_for_one", "lineno": 69, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run", "lineno": 125, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/base.py", "filename": "gunicorn/workers/base.py", "module": "gunicorn.workers.base", "function": "init_process", "lineno": 142, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_worker", "lineno": 589, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_workers", "lineno": 622, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "manage_workers", "lineno": 551, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "run", "lineno": 202, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 72, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 231, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/wsgiapp.py", "filename": "gunicorn/app/wsgiapp.py", "module": "gunicorn.app.wsgiapp", "function": "run", "lineno": 67, "library_frame": true}, {"abs_path": "/app/venv/bin/gunicorn", "filename": "bin/gunicorn", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(run())", "post_context": []}]}} {"transaction": {"id": "865ade12f5d3129b", "trace_id": "ee8d9ad179319220cf639b1d5aff5996", "name": "GET opbeans.views.order", "type": "request", "duration": 82.0534999947995, "result": "HTTP 2xx", "timestamp": 1646055455300089, "outcome": "success", "sampled": true, "span_count": {"started": 2, "dropped": 0}, "sample_rate": 1.0, "parent_id": "1029043b1eb36a15", "context": {"request": {"env": {"REMOTE_ADDR": "172.23.0.10", "SERVER_NAME": "0.0.0.0", "SERVER_PORT": "3000"}, "method": "GET", "socket": {"remote_address": "172.23.0.10"}, "cookies": {}, "headers": {"traceparent": "00-ee8d9ad179319220cf639b1d5aff5996-1029043b1eb36a15-01", "tracestate": "es=s:1", "elastic-apm-traceparent": "00-ee8d9ad179319220cf639b1d5aff5996-1029043b1eb36a15-01", "host": "opbeans-python:3000", "connection": "close"}, "url": {"full": "http://opbeans-python:3000/api/orders/452", "protocol": "http:", "hostname": "opbeans-python", "pathname": "/api/orders/452", "port": "3000"}}, "response": {"status_code": 200, "headers": {"Content-Type": "application/json", "X-Frame-Options": "DENY", "Content-Length": "336", "Vary": "Cookie", "X-Content-Type-Options": "nosniff", "Referrer-Policy": "same-origin"}}, "user": {"is_authenticated": true, "id": 11, "username": "crystal68", "email": "crystal68@gonzales-horn.info"}, "tags": {"request_id": "8c0239d7-a0e7-419f-ac0d-8033ec907fd5", "customer_tier": "$$"}}}} -{"metadata": {"service": {"name": "opbeans-python", "environment": "production", "version": "None", "agent": {"name": "python", "version": "6.7.2"}, "language": {"name": "python", "version": "3.10.2"}, "runtime": {"name": "CPython", "version": "3.10.2"}, "framework": {"name": "django", "version": "3.2.11"}}, "process": {"pid": 123, "ppid": 109, "argv": ["/app/venv/bin/gunicorn", "--workers", "4", "--bind", "0.0.0.0:3000", "opbeans.wsgi"], "title": null}, "system": {"hostname": "88abe6e3ded4", "architecture": "x86_64", "platform": "linux"}}} {"span": {"id": "9dd768cde359ab9a", "transaction_id": "b375fd14ec377d5f", "trace_id": "939cf5cf0f02477face9fe243f8e1250", "parent_id": "b375fd14ec377d5f", "name": "SELECT FROM opbeans_order", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055453427936, "duration": 5.543959006899968, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT \"opbeans_order\".\"id\", \"opbeans_order\".\"customer_id\", \"opbeans_order\".\"created_at\" FROM \"opbeans_order\" LIMIT 1000"}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}, "stacktrace": [{"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/backends/utils.py", "filename": "django/db/backends/utils.py", "module": "django.db.backends.utils", "function": "_execute_with_wrappers", "lineno": 75, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/backends/utils.py", "filename": "django/db/backends/utils.py", "module": "django.db.backends.utils", "function": "execute", "lineno": 66, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/sql/compiler.py", "filename": "django/db/models/sql/compiler.py", "module": "django.db.models.sql.compiler", "function": "execute_sql", "lineno": 1175, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/query.py", "filename": "django/db/models/query.py", "module": "django.db.models.query", "function": "__iter__", "lineno": 51, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/query.py", "filename": "django/db/models/query.py", "module": "django.db.models.query", "function": "_fetch_all", "lineno": 1324, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/query.py", "filename": "django/db/models/query.py", "module": "django.db.models.query", "function": "__len__", "lineno": 262, "library_frame": true}, {"abs_path": "/app/opbeans/views.py", "filename": "opbeans/views.py", "module": "opbeans.views", "function": "orders", "lineno": 199, "library_frame": false, "pre_context": [" elasticapm.set_transaction_name('POST opbeans.views.post_order')", " return post_order(request)"], "context_line": " order_list = list(m.Order.objects.all()[:1000])", "post_context": [" with elasticapm.capture_span(\"iterate_orders\"):", " orders = ["]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/views/decorators/csrf.py", "filename": "django/views/decorators/csrf.py", "module": "django.views.decorators.csrf", "function": "wrapped_view", "lineno": 54, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "_get_response", "lineno": 181, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/whitenoise/middleware.py", "filename": "whitenoise/middleware.py", "module": "whitenoise.middleware", "function": "__call__", "lineno": 60, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "get_response", "lineno": 130, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/wsgi.py", "filename": "django/core/handlers/wsgi.py", "module": "django.core.handlers.wsgi", "function": "__call__", "lineno": 133, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle_request", "lineno": 179, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle", "lineno": 136, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "accept", "lineno": 31, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run_for_one", "lineno": 69, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run", "lineno": 125, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/base.py", "filename": "gunicorn/workers/base.py", "module": "gunicorn.workers.base", "function": "init_process", "lineno": 142, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_worker", "lineno": 589, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_workers", "lineno": 622, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "manage_workers", "lineno": 551, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "run", "lineno": 202, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 72, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 231, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/wsgiapp.py", "filename": "gunicorn/app/wsgiapp.py", "module": "gunicorn.app.wsgiapp", "function": "run", "lineno": 67, "library_frame": true}, {"abs_path": "/app/venv/bin/gunicorn", "filename": "bin/gunicorn", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(run())", "post_context": []}]}} {"span": {"id": "388a132bd8a196d0", "transaction_id": "b375fd14ec377d5f", "trace_id": "939cf5cf0f02477face9fe243f8e1250", "parent_id": "eb52573eba30d073", "name": "SELECT FROM opbeans_customer", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055453548572, "duration": 2.474000008078292, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT \"opbeans_customer\".\"id\", \"opbeans_customer\".\"full_name\", \"opbeans_customer\".\"company_name\", \"opbeans_customer\".\"email\", \"opbeans_customer\".\"address\", \"opbeans_customer\".\"postal_code\", \"opbeans_customer\".\"city\", \"opbeans_customer\".\"country\" FROM \"opbeans_customer\" WHERE \"opbeans_customer\".\"id\" = %s LIMIT 21"}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}}} {"span": {"id": "870b3dae093cf119", "transaction_id": "b375fd14ec377d5f", "trace_id": "939cf5cf0f02477face9fe243f8e1250", "parent_id": "eb52573eba30d073", "name": "SELECT FROM opbeans_customer", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055453555385, "duration": 2.6343749777879566, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT \"opbeans_customer\".\"id\", \"opbeans_customer\".\"full_name\", \"opbeans_customer\".\"company_name\", \"opbeans_customer\".\"email\", \"opbeans_customer\".\"address\", \"opbeans_customer\".\"postal_code\", \"opbeans_customer\".\"city\", \"opbeans_customer\".\"country\" FROM \"opbeans_customer\" WHERE \"opbeans_customer\".\"id\" = %s LIMIT 21"}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}}} @@ -76,7 +72,6 @@ {"span": {"id": "d7bf1f57a9e44cc8", "transaction_id": "b375fd14ec377d5f", "trace_id": "939cf5cf0f02477face9fe243f8e1250", "parent_id": "eb52573eba30d073", "name": "SELECT FROM opbeans_customer", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055453916642, "duration": 1.4392920129466802, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT \"opbeans_customer\".\"id\", \"opbeans_customer\".\"full_name\", \"opbeans_customer\".\"company_name\", \"opbeans_customer\".\"email\", \"opbeans_customer\".\"address\", \"opbeans_customer\".\"postal_code\", \"opbeans_customer\".\"city\", \"opbeans_customer\".\"country\" FROM \"opbeans_customer\" WHERE \"opbeans_customer\".\"id\" = %s LIMIT 21"}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}}} {"span": {"id": "5f18256218a0bbb4", "transaction_id": "b375fd14ec377d5f", "trace_id": "939cf5cf0f02477face9fe243f8e1250", "parent_id": "eb52573eba30d073", "name": "SELECT FROM opbeans_customer", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055453921273, "duration": 1.4437499921768904, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT \"opbeans_customer\".\"id\", \"opbeans_customer\".\"full_name\", \"opbeans_customer\".\"company_name\", \"opbeans_customer\".\"email\", \"opbeans_customer\".\"address\", \"opbeans_customer\".\"postal_code\", \"opbeans_customer\".\"city\", \"opbeans_customer\".\"country\" FROM \"opbeans_customer\" WHERE \"opbeans_customer\".\"id\" = %s LIMIT 21"}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}}} {"span": {"id": "9c186f81c5b300bc", "transaction_id": "b375fd14ec377d5f", "trace_id": "939cf5cf0f02477face9fe243f8e1250", "parent_id": "eb52573eba30d073", "name": "SELECT FROM opbeans_customer", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055453926205, "duration": 1.1994589876849204, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT \"opbeans_customer\".\"id\", \"opbeans_customer\".\"full_name\", \"opbeans_customer\".\"company_name\", \"opbeans_customer\".\"email\", \"opbeans_customer\".\"address\", \"opbeans_customer\".\"postal_code\", \"opbeans_customer\".\"city\", \"opbeans_customer\".\"country\" FROM \"opbeans_customer\" WHERE \"opbeans_customer\".\"id\" = %s LIMIT 21"}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}}} -{"metadata": {"service": {"name": "opbeans-python", "environment": "production", "version": "None", "agent": {"name": "python", "version": "6.7.2"}, "language": {"name": "python", "version": "3.10.2"}, "runtime": {"name": "CPython", "version": "3.10.2"}, "framework": {"name": "django", "version": "3.2.11"}}, "process": {"pid": 156, "ppid": 113, "argv": ["/app/venv/bin/celery", "-A", "opbeans", "worker", "--concurrency=1", "-l", "info"], "title": null}, "system": {"hostname": "88abe6e3ded4", "architecture": "x86_64", "platform": "linux"}}} {"span": {"id": "24bdd72f2cf97920", "transaction_id": "6cee97b02e6dd140", "trace_id": "80dd846b34c930d3f139ea60a988b522", "parent_id": "6cee97b02e6dd140", "name": "psycopg2.connect postgres:5432", "type": "db", "subtype": "postgresql", "action": "connect", "timestamp": 1646055457222417, "duration": 14.815333008300513, "outcome": "success", "sample_rate": 1.0, "context": {"destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}, "stacktrace": [{"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/backends/postgresql/base.py", "filename": "django/db/backends/postgresql/base.py", "module": "django.db.backends.postgresql.base", "function": "get_new_connection", "lineno": 187, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/asyncio.py", "filename": "django/utils/asyncio.py", "module": "django.utils.asyncio", "function": "inner", "lineno": 33, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/backends/base/base.py", "filename": "django/db/backends/base/base.py", "module": "django.db.backends.base.base", "function": "connect", "lineno": 200, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/asyncio.py", "filename": "django/utils/asyncio.py", "module": "django.utils.asyncio", "function": "inner", "lineno": 33, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/backends/base/base.py", "filename": "django/db/backends/base/base.py", "module": "django.db.backends.base.base", "function": "ensure_connection", "lineno": 219, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/asyncio.py", "filename": "django/utils/asyncio.py", "module": "django.utils.asyncio", "function": "inner", "lineno": 33, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/backends/base/base.py", "filename": "django/db/backends/base/base.py", "module": "django.db.backends.base.base", "function": "_cursor", "lineno": 235, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/backends/base/base.py", "filename": "django/db/backends/base/base.py", "module": "django.db.backends.base.base", "function": "cursor", "lineno": 259, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/asyncio.py", "filename": "django/utils/asyncio.py", "module": "django.utils.asyncio", "function": "inner", "lineno": 33, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/sql/compiler.py", "filename": "django/db/models/sql/compiler.py", "module": "django.db.models.sql.compiler", "function": "execute_sql", "lineno": 1173, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/sql/query.py", "filename": "django/db/models/sql/query.py", "module": "django.db.models.sql.query", "function": "get_aggregation", "lineno": 504, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/query.py", "filename": "django/db/models/query.py", "module": "django.db.models.query", "function": "aggregate", "lineno": 399, "library_frame": true}, {"abs_path": "/app/opbeans/utils.py", "filename": "opbeans/utils.py", "module": "opbeans.utils", "function": "stats", "lineno": 9, "library_frame": false, "pre_context": ["", "def stats():"], "context_line": " numbers = m.Product.objects.annotate(", "post_context": [" order_count=models.Count('order'),", " per_item_profit=models.F('selling_price') - models.F('cost')"]}, {"abs_path": "/app/opbeans/tasks.py", "filename": "opbeans/tasks.py", "module": "opbeans.tasks", "function": "update_stats", "lineno": 22, "library_frame": false, "pre_context": [" elasticapm.label(a=\"x\", b=\"y\")", " elasticapm.set_custom_context({\"a\": \"x\", \"b\": \"y\"})"], "context_line": " cache.set(utils.stats.cache_key, utils.stats(), 60)", "post_context": ["", ""]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "__protected_call__", "lineno": 734, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "trace_task", "lineno": 451, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "fast_trace_task", "lineno": 649, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "workloop", "lineno": 362, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "__call__", "lineno": 292, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "run", "lineno": 114, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "_bootstrap", "lineno": 327, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/popen_fork.py", "filename": "billiard/popen_fork.py", "module": "billiard.popen_fork", "function": "_launch", "lineno": 79, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/popen_fork.py", "filename": "billiard/popen_fork.py", "module": "billiard.popen_fork", "function": "__init__", "lineno": 24, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/context.py", "filename": "billiard/context.py", "module": "billiard.context", "function": "_Popen", "lineno": 333, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "start", "lineno": 124, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "_create_worker_process", "lineno": 1158, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/asynpool.py", "filename": "celery/concurrency/asynpool.py", "module": "celery.concurrency.asynpool", "function": "_create_worker_process", "lineno": 480, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "__init__", "lineno": 1046, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/asynpool.py", "filename": "celery/concurrency/asynpool.py", "module": "celery.concurrency.asynpool", "function": "__init__", "lineno": 463, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/prefork.py", "filename": "celery/concurrency/prefork.py", "module": "celery.concurrency.prefork", "function": "on_start", "lineno": 109, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/base.py", "filename": "celery/concurrency/base.py", "module": "celery.concurrency.base", "function": "start", "lineno": 129, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bootsteps.py", "filename": "celery/bootsteps.py", "module": "celery.bootsteps", "function": "start", "lineno": 365, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bootsteps.py", "filename": "celery/bootsteps.py", "module": "celery.bootsteps", "function": "start", "lineno": 116, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/worker/worker.py", "filename": "celery/worker/worker.py", "module": "celery.worker.worker", "function": "start", "lineno": 203, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/worker.py", "filename": "celery/bin/worker.py", "module": "celery.bin.worker", "function": "worker", "lineno": 351, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/base.py", "filename": "celery/bin/base.py", "module": "celery.bin.base", "function": "caller", "lineno": 134, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/decorators.py", "filename": "click/decorators.py", "module": "click.decorators", "function": "new_func", "lineno": 26, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 754, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 1395, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 1659, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "main", "lineno": 1053, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "__call__", "lineno": 1128, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/celery.py", "filename": "celery/bin/celery.py", "module": "celery.bin.celery", "function": "main", "lineno": 213, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/__main__.py", "filename": "celery/__main__.py", "module": "celery.__main__", "function": "main", "lineno": 15, "library_frame": true}, {"abs_path": "/app/venv/bin/celery", "filename": "bin/celery", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(main())", "post_context": []}]}} {"span": {"id": "c8746c0bb1af2d3f", "transaction_id": "6cee97b02e6dd140", "trace_id": "80dd846b34c930d3f139ea60a988b522", "parent_id": "6cee97b02e6dd140", "name": "SET", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055457266236, "duration": 1.826499996241182, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SET TIME ZONE %s"}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}}} {"span": {"id": "c95ee51a260e637c", "transaction_id": "6cee97b02e6dd140", "trace_id": "80dd846b34c930d3f139ea60a988b522", "parent_id": "6cee97b02e6dd140", "name": "SELECT FROM opbeans_product", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055457271161, "duration": 61.645125009818, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT SUM(\"total_revenue\"), SUM(\"total_cost\"), SUM(\"total_profit\") FROM (SELECT COUNT(\"opbeans_orderline\".\"order_id\") AS \"order_count\", (\"opbeans_product\".\"selling_price\" - \"opbeans_product\".\"cost\") AS \"per_item_profit\", (COUNT(\"opbeans_orderline\".\"order_id\") * (\"opbeans_product\".\"selling_price\" - \"opbeans_product\".\"cost\")) AS \"total_profit\", (COUNT(\"opbeans_orderline\".\"order_id\") * \"opbeans_product\".\"selling_price\") AS \"total_revenue\", (COUNT(\"opbeans_orderline\".\"order_id\") * \"opbeans_product\".\"cost\") AS \"total_cost\" FROM \"opbeans_product\" LEFT OUTER JOIN \"opbeans_orderline\" ON (\"opbeans_product\".\"id\" = \"opbeans_orderline\".\"product_id\") GROUP BY \"opbeans_product\".\"id\", (\"opbeans_product\".\"selling_price\" - \"opbeans_product\".\"cost\")) subquery"}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}, "stacktrace": [{"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/backends/utils.py", "filename": "django/db/backends/utils.py", "module": "django.db.backends.utils", "function": "_execute_with_wrappers", "lineno": 75, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/backends/utils.py", "filename": "django/db/backends/utils.py", "module": "django.db.backends.utils", "function": "execute", "lineno": 66, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/sql/compiler.py", "filename": "django/db/models/sql/compiler.py", "module": "django.db.models.sql.compiler", "function": "execute_sql", "lineno": 1175, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/sql/query.py", "filename": "django/db/models/sql/query.py", "module": "django.db.models.sql.query", "function": "get_aggregation", "lineno": 504, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/query.py", "filename": "django/db/models/query.py", "module": "django.db.models.query", "function": "aggregate", "lineno": 399, "library_frame": true}, {"abs_path": "/app/opbeans/utils.py", "filename": "opbeans/utils.py", "module": "opbeans.utils", "function": "stats", "lineno": 9, "library_frame": false, "pre_context": ["", "def stats():"], "context_line": " numbers = m.Product.objects.annotate(", "post_context": [" order_count=models.Count('order'),", " per_item_profit=models.F('selling_price') - models.F('cost')"]}, {"abs_path": "/app/opbeans/tasks.py", "filename": "opbeans/tasks.py", "module": "opbeans.tasks", "function": "update_stats", "lineno": 22, "library_frame": false, "pre_context": [" elasticapm.label(a=\"x\", b=\"y\")", " elasticapm.set_custom_context({\"a\": \"x\", \"b\": \"y\"})"], "context_line": " cache.set(utils.stats.cache_key, utils.stats(), 60)", "post_context": ["", ""]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "__protected_call__", "lineno": 734, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "trace_task", "lineno": 451, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "fast_trace_task", "lineno": 649, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "workloop", "lineno": 362, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "__call__", "lineno": 292, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "run", "lineno": 114, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "_bootstrap", "lineno": 327, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/popen_fork.py", "filename": "billiard/popen_fork.py", "module": "billiard.popen_fork", "function": "_launch", "lineno": 79, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/popen_fork.py", "filename": "billiard/popen_fork.py", "module": "billiard.popen_fork", "function": "__init__", "lineno": 24, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/context.py", "filename": "billiard/context.py", "module": "billiard.context", "function": "_Popen", "lineno": 333, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "start", "lineno": 124, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "_create_worker_process", "lineno": 1158, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/asynpool.py", "filename": "celery/concurrency/asynpool.py", "module": "celery.concurrency.asynpool", "function": "_create_worker_process", "lineno": 480, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "__init__", "lineno": 1046, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/asynpool.py", "filename": "celery/concurrency/asynpool.py", "module": "celery.concurrency.asynpool", "function": "__init__", "lineno": 463, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/prefork.py", "filename": "celery/concurrency/prefork.py", "module": "celery.concurrency.prefork", "function": "on_start", "lineno": 109, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/base.py", "filename": "celery/concurrency/base.py", "module": "celery.concurrency.base", "function": "start", "lineno": 129, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bootsteps.py", "filename": "celery/bootsteps.py", "module": "celery.bootsteps", "function": "start", "lineno": 365, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bootsteps.py", "filename": "celery/bootsteps.py", "module": "celery.bootsteps", "function": "start", "lineno": 116, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/worker/worker.py", "filename": "celery/worker/worker.py", "module": "celery.worker.worker", "function": "start", "lineno": 203, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/worker.py", "filename": "celery/bin/worker.py", "module": "celery.bin.worker", "function": "worker", "lineno": 351, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/base.py", "filename": "celery/bin/base.py", "module": "celery.bin.base", "function": "caller", "lineno": 134, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/decorators.py", "filename": "click/decorators.py", "module": "click.decorators", "function": "new_func", "lineno": 26, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 754, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 1395, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 1659, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "main", "lineno": 1053, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "__call__", "lineno": 1128, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/celery.py", "filename": "celery/bin/celery.py", "module": "celery.bin.celery", "function": "main", "lineno": 213, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/__main__.py", "filename": "celery/__main__.py", "module": "celery.__main__", "function": "main", "lineno": 15, "library_frame": true}, {"abs_path": "/app/venv/bin/celery", "filename": "bin/celery", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(main())", "post_context": []}]}} @@ -87,7 +82,6 @@ {"span": {"id": "e969c4790dae9b53", "transaction_id": "6cee97b02e6dd140", "trace_id": "80dd846b34c930d3f139ea60a988b522", "parent_id": "6cee97b02e6dd140", "name": "GET", "type": "db", "subtype": "redis", "action": "query", "timestamp": 1646055457497071, "duration": 4.885458998614922, "outcome": "success", "sample_rate": 1.0, "context": {"destination": {"port": 6379, "address": "redis", "service": {"resource": "redis", "name": "", "type": ""}}}}} {"span": {"id": "0e092bf51c0cdcb7", "transaction_id": "6cee97b02e6dd140", "trace_id": "80dd846b34c930d3f139ea60a988b522", "parent_id": "6cee97b02e6dd140", "name": "Pipeline.execute", "type": "db", "subtype": "redis", "action": "query", "timestamp": 1646055457505380, "duration": 29.47870799107477, "outcome": "success", "sample_rate": 1.0, "context": {"destination": {"port": 6379, "address": "redis", "service": {"resource": "redis", "name": "", "type": ""}}}, "stacktrace": [{"abs_path": "/app/venv/lib/python3.10/site-packages/celery/backends/redis.py", "filename": "celery/backends/redis.py", "module": "celery.backends.redis", "function": "_set", "lineno": 401, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/kombu/utils/functional.py", "filename": "kombu/utils/functional.py", "module": "kombu.utils.functional", "function": "retry_over_time", "lineno": 312, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/backends/redis.py", "filename": "celery/backends/redis.py", "module": "celery.backends.redis", "function": "ensure", "lineno": 376, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/backends/redis.py", "filename": "celery/backends/redis.py", "module": "celery.backends.redis", "function": "set", "lineno": 392, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/backends/base.py", "filename": "celery/backends/base.py", "module": "celery.backends.base", "function": "_set_with_state", "lineno": 839, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/backends/base.py", "filename": "celery/backends/base.py", "module": "celery.backends.base", "function": "_store_result", "lineno": 962, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/backends/base.py", "filename": "celery/backends/base.py", "module": "celery.backends.base", "function": "store_result", "lineno": 528, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/backends/base.py", "filename": "celery/backends/base.py", "module": "celery.backends.base", "function": "mark_as_done", "lineno": 162, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "trace_task", "lineno": 518, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "fast_trace_task", "lineno": 649, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "workloop", "lineno": 362, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "__call__", "lineno": 292, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "run", "lineno": 114, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "_bootstrap", "lineno": 327, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/popen_fork.py", "filename": "billiard/popen_fork.py", "module": "billiard.popen_fork", "function": "_launch", "lineno": 79, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/popen_fork.py", "filename": "billiard/popen_fork.py", "module": "billiard.popen_fork", "function": "__init__", "lineno": 24, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/context.py", "filename": "billiard/context.py", "module": "billiard.context", "function": "_Popen", "lineno": 333, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "start", "lineno": 124, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "_create_worker_process", "lineno": 1158, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/asynpool.py", "filename": "celery/concurrency/asynpool.py", "module": "celery.concurrency.asynpool", "function": "_create_worker_process", "lineno": 480, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "__init__", "lineno": 1046, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/asynpool.py", "filename": "celery/concurrency/asynpool.py", "module": "celery.concurrency.asynpool", "function": "__init__", "lineno": 463, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/prefork.py", "filename": "celery/concurrency/prefork.py", "module": "celery.concurrency.prefork", "function": "on_start", "lineno": 109, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/base.py", "filename": "celery/concurrency/base.py", "module": "celery.concurrency.base", "function": "start", "lineno": 129, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bootsteps.py", "filename": "celery/bootsteps.py", "module": "celery.bootsteps", "function": "start", "lineno": 365, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bootsteps.py", "filename": "celery/bootsteps.py", "module": "celery.bootsteps", "function": "start", "lineno": 116, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/worker/worker.py", "filename": "celery/worker/worker.py", "module": "celery.worker.worker", "function": "start", "lineno": 203, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/worker.py", "filename": "celery/bin/worker.py", "module": "celery.bin.worker", "function": "worker", "lineno": 351, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/base.py", "filename": "celery/bin/base.py", "module": "celery.bin.base", "function": "caller", "lineno": 134, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/decorators.py", "filename": "click/decorators.py", "module": "click.decorators", "function": "new_func", "lineno": 26, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 754, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 1395, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 1659, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "main", "lineno": 1053, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "__call__", "lineno": 1128, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/celery.py", "filename": "celery/bin/celery.py", "module": "celery.bin.celery", "function": "main", "lineno": 213, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/__main__.py", "filename": "celery/__main__.py", "module": "celery.__main__", "function": "main", "lineno": 15, "library_frame": true}, {"abs_path": "/app/venv/bin/celery", "filename": "bin/celery", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(main())", "post_context": []}]}} {"transaction": {"id": "6cee97b02e6dd140", "trace_id": "80dd846b34c930d3f139ea60a988b522", "name": "opbeans.tasks.update_stats", "type": "celery", "duration": 368.1340829934925, "result": "SUCCESS", "timestamp": 1646055457206196, "outcome": "success", "sampled": true, "span_count": {"started": 9, "dropped": 0}, "sample_rate": 1.0, "context": {"custom": {"a": "x", "b": "y"}, "tags": {"a": "x", "b": "y"}}}} -{"metadata": {"service": {"name": "opbeans-python", "environment": "production", "version": "None", "agent": {"name": "python", "version": "6.7.2"}, "language": {"name": "python", "version": "3.10.2"}, "runtime": {"name": "CPython", "version": "3.10.2"}, "framework": {"name": "django", "version": "3.2.11"}}, "process": {"pid": 156, "ppid": 113, "argv": ["/app/venv/bin/celery", "-A", "opbeans", "worker", "--concurrency=1", "-l", "info"], "title": null}, "system": {"hostname": "88abe6e3ded4", "architecture": "x86_64", "platform": "linux"}}} {"span": {"id": "aaa4533a8e79a96d", "transaction_id": "1eaf927b42b7a8e9", "trace_id": "a1f20878af29ab71e74ec1cb457280a0", "parent_id": "1eaf927b42b7a8e9", "name": "SELECT FROM opbeans_product", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055462231859, "duration": 31.775500014191493, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT SUM(\"total_revenue\"), SUM(\"total_cost\"), SUM(\"total_profit\") FROM (SELECT COUNT(\"opbeans_orderline\".\"order_id\") AS \"order_count\", (\"opbeans_product\".\"selling_price\" - \"opbeans_product\".\"cost\") AS \"per_item_profit\", (COUNT(\"opbeans_orderline\".\"order_id\") * (\"opbeans_product\".\"selling_price\" - \"opbeans_product\".\"cost\")) AS \"total_profit\", (COUNT(\"opbeans_orderline\".\"order_id\") * \"opbeans_product\".\"selling_price\") AS \"total_revenue\", (COUNT(\"opbeans_orderline\".\"order_id\") * \"opbeans_product\".\"cost\") AS \"total_cost\" FROM \"opbeans_product\" LEFT OUTER JOIN \"opbeans_orderline\" ON (\"opbeans_product\".\"id\" = \"opbeans_orderline\".\"product_id\") GROUP BY \"opbeans_product\".\"id\", (\"opbeans_product\".\"selling_price\" - \"opbeans_product\".\"cost\")) subquery"}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}, "stacktrace": [{"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/backends/utils.py", "filename": "django/db/backends/utils.py", "module": "django.db.backends.utils", "function": "_execute_with_wrappers", "lineno": 75, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/backends/utils.py", "filename": "django/db/backends/utils.py", "module": "django.db.backends.utils", "function": "execute", "lineno": 66, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/sql/compiler.py", "filename": "django/db/models/sql/compiler.py", "module": "django.db.models.sql.compiler", "function": "execute_sql", "lineno": 1175, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/sql/query.py", "filename": "django/db/models/sql/query.py", "module": "django.db.models.sql.query", "function": "get_aggregation", "lineno": 504, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/query.py", "filename": "django/db/models/query.py", "module": "django.db.models.query", "function": "aggregate", "lineno": 399, "library_frame": true}, {"abs_path": "/app/opbeans/utils.py", "filename": "opbeans/utils.py", "module": "opbeans.utils", "function": "stats", "lineno": 9, "library_frame": false, "pre_context": ["", "def stats():"], "context_line": " numbers = m.Product.objects.annotate(", "post_context": [" order_count=models.Count('order'),", " per_item_profit=models.F('selling_price') - models.F('cost')"]}, {"abs_path": "/app/opbeans/tasks.py", "filename": "opbeans/tasks.py", "module": "opbeans.tasks", "function": "update_stats", "lineno": 22, "library_frame": false, "pre_context": [" elasticapm.label(a=\"x\", b=\"y\")", " elasticapm.set_custom_context({\"a\": \"x\", \"b\": \"y\"})"], "context_line": " cache.set(utils.stats.cache_key, utils.stats(), 60)", "post_context": ["", ""]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "__protected_call__", "lineno": 734, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "trace_task", "lineno": 451, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "fast_trace_task", "lineno": 649, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "workloop", "lineno": 362, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "__call__", "lineno": 292, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "run", "lineno": 114, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "_bootstrap", "lineno": 327, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/popen_fork.py", "filename": "billiard/popen_fork.py", "module": "billiard.popen_fork", "function": "_launch", "lineno": 79, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/popen_fork.py", "filename": "billiard/popen_fork.py", "module": "billiard.popen_fork", "function": "__init__", "lineno": 24, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/context.py", "filename": "billiard/context.py", "module": "billiard.context", "function": "_Popen", "lineno": 333, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "start", "lineno": 124, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "_create_worker_process", "lineno": 1158, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/asynpool.py", "filename": "celery/concurrency/asynpool.py", "module": "celery.concurrency.asynpool", "function": "_create_worker_process", "lineno": 480, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "__init__", "lineno": 1046, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/asynpool.py", "filename": "celery/concurrency/asynpool.py", "module": "celery.concurrency.asynpool", "function": "__init__", "lineno": 463, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/prefork.py", "filename": "celery/concurrency/prefork.py", "module": "celery.concurrency.prefork", "function": "on_start", "lineno": 109, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/base.py", "filename": "celery/concurrency/base.py", "module": "celery.concurrency.base", "function": "start", "lineno": 129, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bootsteps.py", "filename": "celery/bootsteps.py", "module": "celery.bootsteps", "function": "start", "lineno": 365, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bootsteps.py", "filename": "celery/bootsteps.py", "module": "celery.bootsteps", "function": "start", "lineno": 116, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/worker/worker.py", "filename": "celery/worker/worker.py", "module": "celery.worker.worker", "function": "start", "lineno": 203, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/worker.py", "filename": "celery/bin/worker.py", "module": "celery.bin.worker", "function": "worker", "lineno": 351, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/base.py", "filename": "celery/bin/base.py", "module": "celery.bin.base", "function": "caller", "lineno": 134, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/decorators.py", "filename": "click/decorators.py", "module": "click.decorators", "function": "new_func", "lineno": 26, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 754, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 1395, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 1659, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "main", "lineno": 1053, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "__call__", "lineno": 1128, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/celery.py", "filename": "celery/bin/celery.py", "module": "celery.bin.celery", "function": "main", "lineno": 213, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/__main__.py", "filename": "celery/__main__.py", "module": "celery.__main__", "function": "main", "lineno": 15, "library_frame": true}, {"abs_path": "/app/venv/bin/celery", "filename": "bin/celery", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(main())", "post_context": []}]}} {"span": {"id": "858cd3c9d7bee35b", "transaction_id": "1eaf927b42b7a8e9", "trace_id": "a1f20878af29ab71e74ec1cb457280a0", "parent_id": "1eaf927b42b7a8e9", "name": "SELECT FROM opbeans_product", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055462270805, "duration": 4.719415999716148, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT COUNT(*) AS \"__count\" FROM \"opbeans_product\""}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}}} {"span": {"id": "4b7f1cce28e7932d", "transaction_id": "1eaf927b42b7a8e9", "trace_id": "a1f20878af29ab71e74ec1cb457280a0", "parent_id": "1eaf927b42b7a8e9", "name": "SELECT FROM opbeans_customer", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055462278967, "duration": 8.446459018159658, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT COUNT(*) AS \"__count\" FROM \"opbeans_customer\""}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}, "stacktrace": [{"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/backends/utils.py", "filename": "django/db/backends/utils.py", "module": "django.db.backends.utils", "function": "_execute_with_wrappers", "lineno": 75, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/backends/utils.py", "filename": "django/db/backends/utils.py", "module": "django.db.backends.utils", "function": "execute", "lineno": 66, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/sql/compiler.py", "filename": "django/db/models/sql/compiler.py", "module": "django.db.models.sql.compiler", "function": "execute_sql", "lineno": 1175, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/sql/query.py", "filename": "django/db/models/sql/query.py", "module": "django.db.models.sql.query", "function": "get_aggregation", "lineno": 504, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/sql/query.py", "filename": "django/db/models/sql/query.py", "module": "django.db.models.sql.query", "function": "get_count", "lineno": 519, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/query.py", "filename": "django/db/models/query.py", "module": "django.db.models.query", "function": "count", "lineno": 412, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/manager.py", "filename": "django/db/models/manager.py", "module": "django.db.models.manager", "function": "manager_method", "lineno": 85, "library_frame": true}, {"abs_path": "/app/opbeans/utils.py", "filename": "opbeans/utils.py", "module": "opbeans.utils", "function": "stats", "lineno": 23, "library_frame": false, "pre_context": [" data = {", " 'products': m.Product.objects.count(),"], "context_line": " 'customers': m.Customer.objects.count(),", "post_context": [" 'orders': m.Order.objects.count(),", " 'numbers': numbers"]}, {"abs_path": "/app/opbeans/tasks.py", "filename": "opbeans/tasks.py", "module": "opbeans.tasks", "function": "update_stats", "lineno": 22, "library_frame": false, "pre_context": [" elasticapm.label(a=\"x\", b=\"y\")", " elasticapm.set_custom_context({\"a\": \"x\", \"b\": \"y\"})"], "context_line": " cache.set(utils.stats.cache_key, utils.stats(), 60)", "post_context": ["", ""]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "__protected_call__", "lineno": 734, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "trace_task", "lineno": 451, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "fast_trace_task", "lineno": 649, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "workloop", "lineno": 362, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "__call__", "lineno": 292, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "run", "lineno": 114, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "_bootstrap", "lineno": 327, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/popen_fork.py", "filename": "billiard/popen_fork.py", "module": "billiard.popen_fork", "function": "_launch", "lineno": 79, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/popen_fork.py", "filename": "billiard/popen_fork.py", "module": "billiard.popen_fork", "function": "__init__", "lineno": 24, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/context.py", "filename": "billiard/context.py", "module": "billiard.context", "function": "_Popen", "lineno": 333, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "start", "lineno": 124, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "_create_worker_process", "lineno": 1158, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/asynpool.py", "filename": "celery/concurrency/asynpool.py", "module": "celery.concurrency.asynpool", "function": "_create_worker_process", "lineno": 480, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "__init__", "lineno": 1046, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/asynpool.py", "filename": "celery/concurrency/asynpool.py", "module": "celery.concurrency.asynpool", "function": "__init__", "lineno": 463, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/prefork.py", "filename": "celery/concurrency/prefork.py", "module": "celery.concurrency.prefork", "function": "on_start", "lineno": 109, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/base.py", "filename": "celery/concurrency/base.py", "module": "celery.concurrency.base", "function": "start", "lineno": 129, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bootsteps.py", "filename": "celery/bootsteps.py", "module": "celery.bootsteps", "function": "start", "lineno": 365, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bootsteps.py", "filename": "celery/bootsteps.py", "module": "celery.bootsteps", "function": "start", "lineno": 116, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/worker/worker.py", "filename": "celery/worker/worker.py", "module": "celery.worker.worker", "function": "start", "lineno": 203, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/worker.py", "filename": "celery/bin/worker.py", "module": "celery.bin.worker", "function": "worker", "lineno": 351, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/base.py", "filename": "celery/bin/base.py", "module": "celery.bin.base", "function": "caller", "lineno": 134, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/decorators.py", "filename": "click/decorators.py", "module": "click.decorators", "function": "new_func", "lineno": 26, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 754, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 1395, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 1659, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "main", "lineno": 1053, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "__call__", "lineno": 1128, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/celery.py", "filename": "celery/bin/celery.py", "module": "celery.bin.celery", "function": "main", "lineno": 213, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/__main__.py", "filename": "celery/__main__.py", "module": "celery.__main__", "function": "main", "lineno": 15, "library_frame": true}, {"abs_path": "/app/venv/bin/celery", "filename": "bin/celery", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(main())", "post_context": []}]}} @@ -104,16 +98,13 @@ {"span": {"id": "5ae9976a85a45d6e", "transaction_id": "5dace774b310e7d3", "trace_id": "f669909c94c6326c05bed59ff6ab6571", "parent_id": "5dace774b310e7d3", "name": "GET", "type": "db", "subtype": "redis", "action": "query", "timestamp": 1646055467443475, "duration": 4.112082999199629, "outcome": "success", "sample_rate": 1.0, "context": {"destination": {"port": 6379, "address": "redis", "service": {"resource": "redis", "name": "", "type": ""}}}}} {"span": {"id": "85a0c7e7c5e59f01", "transaction_id": "5dace774b310e7d3", "trace_id": "f669909c94c6326c05bed59ff6ab6571", "parent_id": "5dace774b310e7d3", "name": "Pipeline.execute", "type": "db", "subtype": "redis", "action": "query", "timestamp": 1646055467449274, "duration": 6.786500016460195, "outcome": "success", "sample_rate": 1.0, "context": {"destination": {"port": 6379, "address": "redis", "service": {"resource": "redis", "name": "", "type": ""}}}, "stacktrace": [{"abs_path": "/app/venv/lib/python3.10/site-packages/celery/backends/redis.py", "filename": "celery/backends/redis.py", "module": "celery.backends.redis", "function": "_set", "lineno": 401, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/kombu/utils/functional.py", "filename": "kombu/utils/functional.py", "module": "kombu.utils.functional", "function": "retry_over_time", "lineno": 312, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/backends/redis.py", "filename": "celery/backends/redis.py", "module": "celery.backends.redis", "function": "ensure", "lineno": 376, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/backends/redis.py", "filename": "celery/backends/redis.py", "module": "celery.backends.redis", "function": "set", "lineno": 392, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/backends/base.py", "filename": "celery/backends/base.py", "module": "celery.backends.base", "function": "_set_with_state", "lineno": 839, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/backends/base.py", "filename": "celery/backends/base.py", "module": "celery.backends.base", "function": "_store_result", "lineno": 962, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/backends/base.py", "filename": "celery/backends/base.py", "module": "celery.backends.base", "function": "store_result", "lineno": 528, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/backends/base.py", "filename": "celery/backends/base.py", "module": "celery.backends.base", "function": "mark_as_done", "lineno": 162, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "trace_task", "lineno": 518, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "fast_trace_task", "lineno": 649, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "workloop", "lineno": 362, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "__call__", "lineno": 292, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "run", "lineno": 114, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "_bootstrap", "lineno": 327, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/popen_fork.py", "filename": "billiard/popen_fork.py", "module": "billiard.popen_fork", "function": "_launch", "lineno": 79, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/popen_fork.py", "filename": "billiard/popen_fork.py", "module": "billiard.popen_fork", "function": "__init__", "lineno": 24, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/context.py", "filename": "billiard/context.py", "module": "billiard.context", "function": "_Popen", "lineno": 333, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "start", "lineno": 124, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "_create_worker_process", "lineno": 1158, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/asynpool.py", "filename": "celery/concurrency/asynpool.py", "module": "celery.concurrency.asynpool", "function": "_create_worker_process", "lineno": 480, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "__init__", "lineno": 1046, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/asynpool.py", "filename": "celery/concurrency/asynpool.py", "module": "celery.concurrency.asynpool", "function": "__init__", "lineno": 463, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/prefork.py", "filename": "celery/concurrency/prefork.py", "module": "celery.concurrency.prefork", "function": "on_start", "lineno": 109, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/base.py", "filename": "celery/concurrency/base.py", "module": "celery.concurrency.base", "function": "start", "lineno": 129, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bootsteps.py", "filename": "celery/bootsteps.py", "module": "celery.bootsteps", "function": "start", "lineno": 365, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bootsteps.py", "filename": "celery/bootsteps.py", "module": "celery.bootsteps", "function": "start", "lineno": 116, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/worker/worker.py", "filename": "celery/worker/worker.py", "module": "celery.worker.worker", "function": "start", "lineno": 203, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/worker.py", "filename": "celery/bin/worker.py", "module": "celery.bin.worker", "function": "worker", "lineno": 351, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/base.py", "filename": "celery/bin/base.py", "module": "celery.bin.base", "function": "caller", "lineno": 134, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/decorators.py", "filename": "click/decorators.py", "module": "click.decorators", "function": "new_func", "lineno": 26, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 754, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 1395, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 1659, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "main", "lineno": 1053, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "__call__", "lineno": 1128, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/celery.py", "filename": "celery/bin/celery.py", "module": "celery.bin.celery", "function": "main", "lineno": 213, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/__main__.py", "filename": "celery/__main__.py", "module": "celery.__main__", "function": "main", "lineno": 15, "library_frame": true}, {"abs_path": "/app/venv/bin/celery", "filename": "bin/celery", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(main())", "post_context": []}]}} {"transaction": {"id": "5dace774b310e7d3", "trace_id": "f669909c94c6326c05bed59ff6ab6571", "name": "opbeans.tasks.update_stats", "type": "celery", "duration": 288.51545898942277, "result": "SUCCESS", "timestamp": 1646055467173859, "outcome": "success", "sampled": true, "span_count": {"started": 7, "dropped": 0}, "sample_rate": 1.0, "context": {"custom": {"a": "x", "b": "y"}, "tags": {"a": "x", "b": "y"}}}} -{"metadata": {"service": {"name": "opbeans-python", "environment": "production", "version": "None", "agent": {"name": "python", "version": "6.7.2"}, "language": {"name": "python", "version": "3.10.2"}, "runtime": {"name": "CPython", "version": "3.10.2"}, "framework": {"name": "django", "version": "3.2.11"}}, "process": {"pid": 123, "ppid": 109, "argv": ["/app/venv/bin/gunicorn", "--workers", "4", "--bind", "0.0.0.0:3000", "opbeans.wsgi"], "title": null}, "system": {"hostname": "88abe6e3ded4", "architecture": "x86_64", "platform": "linux"}}} {"span": {"id": "eb52573eba30d073", "transaction_id": "b375fd14ec377d5f", "trace_id": "939cf5cf0f02477face9fe243f8e1250", "parent_id": "b375fd14ec377d5f", "name": "iterate_orders", "type": "code", "subtype": "custom", "action": null, "timestamp": 1646055453540715, "duration": 5131.1914199905, "outcome": "success", "sample_rate": 1.0, "stacktrace": [{"abs_path": "/app/opbeans/views.py", "filename": "opbeans/views.py", "module": "opbeans.views", "function": "orders", "lineno": 200, "library_frame": false, "pre_context": [" return post_order(request)", " order_list = list(m.Order.objects.all()[:1000])"], "context_line": " with elasticapm.capture_span(\"iterate_orders\"):", "post_context": [" orders = [", " {\"id\": order.id,"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/views/decorators/csrf.py", "filename": "django/views/decorators/csrf.py", "module": "django.views.decorators.csrf", "function": "wrapped_view", "lineno": 54, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "_get_response", "lineno": 181, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/whitenoise/middleware.py", "filename": "whitenoise/middleware.py", "module": "whitenoise.middleware", "function": "__call__", "lineno": 60, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "get_response", "lineno": 130, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/wsgi.py", "filename": "django/core/handlers/wsgi.py", "module": "django.core.handlers.wsgi", "function": "__call__", "lineno": 133, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle_request", "lineno": 179, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle", "lineno": 136, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "accept", "lineno": 31, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run_for_one", "lineno": 69, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run", "lineno": 125, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/base.py", "filename": "gunicorn/workers/base.py", "module": "gunicorn.workers.base", "function": "init_process", "lineno": 142, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_worker", "lineno": 589, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_workers", "lineno": 622, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "manage_workers", "lineno": 551, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "run", "lineno": 202, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 72, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 231, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/wsgiapp.py", "filename": "gunicorn/app/wsgiapp.py", "module": "gunicorn.app.wsgiapp", "function": "run", "lineno": 67, "library_frame": true}, {"abs_path": "/app/venv/bin/gunicorn", "filename": "bin/gunicorn", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(run())", "post_context": []}]}} {"transaction": {"id": "b375fd14ec377d5f", "trace_id": "939cf5cf0f02477face9fe243f8e1250", "name": "GET opbeans.views.orders", "type": "request", "duration": 5411.996294977143, "result": "HTTP 2xx", "timestamp": 1646055453311587, "outcome": "success", "sampled": true, "span_count": {"started": 50, "dropped": 952}, "dropped_spans_stats": [{"destination_service_resource": "postgresql", "outcome": "success", "duration": {"count": 952, "sum": {"us": 833238}}}], "sample_rate": 1.0, "parent_id": "d026dc7ec2576951", "context": {"request": {"env": {"REMOTE_ADDR": "172.23.0.9", "SERVER_NAME": "0.0.0.0", "SERVER_PORT": "3000"}, "method": "GET", "socket": {"remote_address": "172.23.0.9"}, "cookies": {}, "headers": {"host": "localhost:3000", "user-agent": "Go-http-client/1.1", "accept-encoding": "gzip", "elastic-apm-traceparent": "00-939cf5cf0f02477face9fe243f8e1250-d026dc7ec2576951-01", "traceparent": "00-939cf5cf0f02477face9fe243f8e1250-d026dc7ec2576951-01", "tracestate": "es=s:1", "x-forwarded-for": "127.0.0.1"}, "url": {"full": "http://localhost:3000/api/orders", "protocol": "http:", "hostname": "localhost", "pathname": "/api/orders", "port": "3000"}}, "response": {"status_code": 200, "headers": {"Content-Type": "application/json", "X-Frame-Options": "DENY", "Content-Length": "108580", "Vary": "Cookie", "X-Content-Type-Options": "nosniff", "Referrer-Policy": "same-origin"}}, "user": {"is_authenticated": true, "id": 7, "username": "aliciarichardson", "email": "aliciarichardson@carter-moore.com"}, "tags": {"request_id": "3b2ebd98-da13-4131-a83f-c952fe626a56", "customer_tier": "$"}}}} {"span": {"id": "cdca4652294bf961", "transaction_id": "379c8f69aee12284", "trace_id": "b584790684d4266de03c50ac6965252e", "parent_id": "379c8f69aee12284", "name": "hard-home-work", "type": "code", "subtype": "custom", "action": null, "timestamp": 1646055459509966, "duration": 93.57966700918041, "outcome": "success", "sample_rate": 1.0, "stacktrace": [{"abs_path": "/app/opbeans/views.py", "filename": "opbeans/views.py", "module": "opbeans.views", "function": "home", "lineno": 308, "library_frame": false, "pre_context": ["", "def home(request):"], "context_line": " with elasticapm.capture_span(\"hard-home-work\"):", "post_context": [" time.sleep(random.random() / 2.0)", " return render(request, \"index.html\")"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "_get_response", "lineno": 181, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/whitenoise/middleware.py", "filename": "whitenoise/middleware.py", "module": "whitenoise.middleware", "function": "__call__", "lineno": 60, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "get_response", "lineno": 130, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/wsgi.py", "filename": "django/core/handlers/wsgi.py", "module": "django.core.handlers.wsgi", "function": "__call__", "lineno": 133, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle_request", "lineno": 179, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle", "lineno": 136, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "accept", "lineno": 31, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run_for_one", "lineno": 69, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run", "lineno": 125, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/base.py", "filename": "gunicorn/workers/base.py", "module": "gunicorn.workers.base", "function": "init_process", "lineno": 142, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_worker", "lineno": 589, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_workers", "lineno": 622, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "manage_workers", "lineno": 551, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "run", "lineno": 202, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 72, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 231, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/wsgiapp.py", "filename": "gunicorn/app/wsgiapp.py", "module": "gunicorn.app.wsgiapp", "function": "run", "lineno": 67, "library_frame": true}, {"abs_path": "/app/venv/bin/gunicorn", "filename": "bin/gunicorn", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(run())", "post_context": []}]}} {"span": {"id": "414aeb9d77128e28", "transaction_id": "379c8f69aee12284", "trace_id": "b584790684d4266de03c50ac6965252e", "parent_id": "379c8f69aee12284", "name": "index.html", "type": "template", "subtype": "django", "action": "render", "timestamp": 1646055459731604, "duration": 10.794000001624227, "outcome": "success", "sample_rate": 1.0, "stacktrace": [{"abs_path": "/app/venv/lib/python3.10/site-packages/django/template/backends/django.py", "filename": "django/template/backends/django.py", "module": "django.template.backends.django", "function": "render", "lineno": 61, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/template/loader.py", "filename": "django/template/loader.py", "module": "django.template.loader", "function": "render_to_string", "lineno": 62, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/shortcuts.py", "filename": "django/shortcuts.py", "module": "django.shortcuts", "function": "render", "lineno": 19, "library_frame": true}, {"abs_path": "/app/opbeans/views.py", "filename": "opbeans/views.py", "module": "opbeans.views", "function": "home", "lineno": 310, "library_frame": false, "pre_context": [" with elasticapm.capture_span(\"hard-home-work\"):", " time.sleep(random.random() / 2.0)"], "context_line": " return render(request, \"index.html\")", "post_context": ["", ""]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "_get_response", "lineno": 181, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/whitenoise/middleware.py", "filename": "whitenoise/middleware.py", "module": "whitenoise.middleware", "function": "__call__", "lineno": 60, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "get_response", "lineno": 130, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/wsgi.py", "filename": "django/core/handlers/wsgi.py", "module": "django.core.handlers.wsgi", "function": "__call__", "lineno": 133, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle_request", "lineno": 179, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle", "lineno": 136, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "accept", "lineno": 31, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run_for_one", "lineno": 69, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run", "lineno": 125, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/base.py", "filename": "gunicorn/workers/base.py", "module": "gunicorn.workers.base", "function": "init_process", "lineno": 142, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_worker", "lineno": 589, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_workers", "lineno": 622, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "manage_workers", "lineno": 551, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "run", "lineno": 202, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 72, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 231, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/wsgiapp.py", "filename": "gunicorn/app/wsgiapp.py", "module": "gunicorn.app.wsgiapp", "function": "run", "lineno": 67, "library_frame": true}, {"abs_path": "/app/venv/bin/gunicorn", "filename": "bin/gunicorn", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(run())", "post_context": []}]}} {"transaction": {"id": "379c8f69aee12284", "trace_id": "b584790684d4266de03c50ac6965252e", "name": "GET opbeans.views.home", "type": "request", "duration": 253.48854198819026, "result": "HTTP 2xx", "timestamp": 1646055459497419, "outcome": "success", "sampled": true, "span_count": {"started": 2, "dropped": 0}, "sample_rate": 1.0, "parent_id": "094d9e858b7efac3", "context": {"request": {"env": {"REMOTE_ADDR": "172.23.0.11", "SERVER_NAME": "0.0.0.0", "SERVER_PORT": "3000"}, "method": "GET", "socket": {"remote_address": "172.23.0.11"}, "cookies": {}, "headers": {"host": "opbeans-python:3000", "user-agent": "curl/7.74.0", "accept": "*/*"}, "url": {"full": "http://opbeans-python:3000/", "protocol": "http:", "hostname": "opbeans-python", "pathname": "/", "port": "3000"}}, "response": {"status_code": 200, "headers": {"Content-Type": "text/html; charset=utf-8", "X-Frame-Options": "DENY", "Content-Length": "871", "Vary": "Cookie", "X-Content-Type-Options": "nosniff", "Referrer-Policy": "same-origin"}}, "user": {"is_authenticated": true, "id": 15, "username": "jeremy19", "email": "jeremy19@perry-west.com"}, "tags": {"request_id": "d2c7a864-3e23-4811-a943-6fbcaae28468", "customer_tier": "$"}}}} -{"metadata": {"service": {"name": "opbeans-python", "environment": "production", "version": "None", "agent": {"name": "python", "version": "6.7.2"}, "language": {"name": "python", "version": "3.10.2"}, "runtime": {"name": "CPython", "version": "3.10.2"}, "framework": {"name": "django", "version": "3.2.11"}}, "process": {"pid": 121, "ppid": 109, "argv": ["/app/venv/bin/gunicorn", "--workers", "4", "--bind", "0.0.0.0:3000", "opbeans.wsgi"], "title": null}, "system": {"hostname": "88abe6e3ded4", "architecture": "x86_64", "platform": "linux"}}} {"span": {"id": "0ea5716b93d8924c", "transaction_id": "1d23857f28409bc9", "trace_id": "a7b2625a3c72902f925d822c9a0dfbee", "parent_id": "1d23857f28409bc9", "name": "GET opbeans-node:3000", "type": "external", "subtype": "http", "action": null, "timestamp": 1646055475201382, "duration": 212.27920899400488, "outcome": "success", "sample_rate": 1.0, "context": {"http": {"url": "http://opbeans-node:3000/api/products/top", "status_code": 200}, "destination": {"service": {"resource": "opbeans-node:3000", "name": "", "type": ""}}}, "stacktrace": [{"abs_path": "/app/venv/lib/python3.10/site-packages/requests/sessions.py", "filename": "requests/sessions.py", "module": "requests.sessions", "function": "request", "lineno": 529, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/requests/api.py", "filename": "requests/api.py", "module": "requests.api", "function": "request", "lineno": 61, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/requests/api.py", "filename": "requests/api.py", "module": "requests.api", "function": "get", "lineno": 75, "library_frame": true}, {"abs_path": "/app/opbeans/views.py", "filename": "opbeans/views.py", "module": "opbeans.views", "function": "wrapped_view", "lineno": 57, "library_frame": false, "pre_context": [" logger.info(\"dt_ping_pong_proxy\", url=url)", " try:"], "context_line": " other_response = requests.get(url, timeout=15)", "post_context": [" except requests.exceptions.Timeout:", " logger.error(\"dt_ping_pong_timeout\", service=other_service)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "_get_response", "lineno": 181, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/whitenoise/middleware.py", "filename": "whitenoise/middleware.py", "module": "whitenoise.middleware", "function": "__call__", "lineno": 60, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "get_response", "lineno": 130, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/wsgi.py", "filename": "django/core/handlers/wsgi.py", "module": "django.core.handlers.wsgi", "function": "__call__", "lineno": 133, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle_request", "lineno": 179, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle", "lineno": 136, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "accept", "lineno": 31, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run_for_one", "lineno": 69, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run", "lineno": 125, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/base.py", "filename": "gunicorn/workers/base.py", "module": "gunicorn.workers.base", "function": "init_process", "lineno": 142, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_worker", "lineno": 589, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_workers", "lineno": 622, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "manage_workers", "lineno": 551, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "run", "lineno": 202, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 72, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 231, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/wsgiapp.py", "filename": "gunicorn/app/wsgiapp.py", "module": "gunicorn.app.wsgiapp", "function": "run", "lineno": 67, "library_frame": true}, {"abs_path": "/app/venv/bin/gunicorn", "filename": "bin/gunicorn", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(run())", "post_context": []}]}} {"transaction": {"id": "1d23857f28409bc9", "trace_id": "a7b2625a3c72902f925d822c9a0dfbee", "name": "GET opbeans.views.top_products", "type": "request", "duration": 531.9036249711644, "result": "HTTP 2xx", "timestamp": 1646055474955994, "outcome": "success", "sampled": true, "span_count": {"started": 1, "dropped": 0}, "sample_rate": 1.0, "parent_id": "2fde35e6f50ac108", "context": {"request": {"env": {"REMOTE_ADDR": "172.23.0.10", "SERVER_NAME": "0.0.0.0", "SERVER_PORT": "3000"}, "method": "GET", "socket": {"remote_address": "172.23.0.10"}, "cookies": {}, "headers": {"traceparent": "00-a7b2625a3c72902f925d822c9a0dfbee-2fde35e6f50ac108-01", "tracestate": "es=s:1", "elastic-apm-traceparent": "00-a7b2625a3c72902f925d822c9a0dfbee-2fde35e6f50ac108-01", "host": "opbeans-python:3000", "connection": "close"}, "url": {"full": "http://opbeans-python:3000/api/products/top", "protocol": "http:", "hostname": "opbeans-python", "pathname": "/api/products/top", "port": "3000"}}, "response": {"status_code": 200, "headers": {"Content-Type": "application/json; charset=utf-8", "X-Frame-Options": "DENY", "Content-Length": "275", "Vary": "Cookie", "X-Content-Type-Options": "nosniff", "Referrer-Policy": "same-origin"}}, "user": {"is_authenticated": true, "id": 16, "username": "stevensvirginia", "email": "stevensvirginia@white-riggs.com"}, "tags": {"request_id": "63ab43b8-b4b9-434f-a459-a68bacd69043", "customer_tier": "$"}}}} -{"metadata": {"service": {"name": "opbeans-python", "environment": "production", "version": "None", "agent": {"name": "python", "version": "6.7.2"}, "language": {"name": "python", "version": "3.10.2"}, "runtime": {"name": "CPython", "version": "3.10.2"}, "framework": {"name": "django", "version": "3.2.11"}}, "process": {"pid": 125, "ppid": 109, "argv": ["/app/venv/bin/gunicorn", "--workers", "4", "--bind", "0.0.0.0:3000", "opbeans.wsgi"], "title": null}, "system": {"hostname": "88abe6e3ded4", "architecture": "x86_64", "platform": "linux"}}} {"span": {"id": "42951b7d70bcbfc9", "transaction_id": "008fd991f6b1b368", "trace_id": "b0d747be273d3869079b5be294e78ff4", "parent_id": "008fd991f6b1b368", "name": "hard-home-work", "type": "code", "subtype": "custom", "action": null, "timestamp": 1646055470015007, "duration": 379.5523750013672, "outcome": "success", "sample_rate": 1.0, "stacktrace": [{"abs_path": "/app/opbeans/views.py", "filename": "opbeans/views.py", "module": "opbeans.views", "function": "home", "lineno": 308, "library_frame": false, "pre_context": ["", "def home(request):"], "context_line": " with elasticapm.capture_span(\"hard-home-work\"):", "post_context": [" time.sleep(random.random() / 2.0)", " return render(request, \"index.html\")"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "_get_response", "lineno": 181, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/whitenoise/middleware.py", "filename": "whitenoise/middleware.py", "module": "whitenoise.middleware", "function": "__call__", "lineno": 60, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "get_response", "lineno": 130, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/wsgi.py", "filename": "django/core/handlers/wsgi.py", "module": "django.core.handlers.wsgi", "function": "__call__", "lineno": 133, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle_request", "lineno": 179, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle", "lineno": 136, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "accept", "lineno": 31, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run_for_one", "lineno": 69, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run", "lineno": 125, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/base.py", "filename": "gunicorn/workers/base.py", "module": "gunicorn.workers.base", "function": "init_process", "lineno": 142, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_worker", "lineno": 589, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_workers", "lineno": 622, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "manage_workers", "lineno": 551, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "run", "lineno": 202, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 72, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 231, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/wsgiapp.py", "filename": "gunicorn/app/wsgiapp.py", "module": "gunicorn.app.wsgiapp", "function": "run", "lineno": 67, "library_frame": true}, {"abs_path": "/app/venv/bin/gunicorn", "filename": "bin/gunicorn", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(run())", "post_context": []}]}} {"span": {"id": "eb34fd6ec0a18251", "transaction_id": "008fd991f6b1b368", "trace_id": "b0d747be273d3869079b5be294e78ff4", "parent_id": "008fd991f6b1b368", "name": "index.html", "type": "template", "subtype": "django", "action": "render", "timestamp": 1646055470542304, "duration": 20.722457993542776, "outcome": "success", "sample_rate": 1.0, "stacktrace": [{"abs_path": "/app/venv/lib/python3.10/site-packages/django/template/backends/django.py", "filename": "django/template/backends/django.py", "module": "django.template.backends.django", "function": "render", "lineno": 61, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/template/loader.py", "filename": "django/template/loader.py", "module": "django.template.loader", "function": "render_to_string", "lineno": 62, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/shortcuts.py", "filename": "django/shortcuts.py", "module": "django.shortcuts", "function": "render", "lineno": 19, "library_frame": true}, {"abs_path": "/app/opbeans/views.py", "filename": "opbeans/views.py", "module": "opbeans.views", "function": "home", "lineno": 310, "library_frame": false, "pre_context": [" with elasticapm.capture_span(\"hard-home-work\"):", " time.sleep(random.random() / 2.0)"], "context_line": " return render(request, \"index.html\")", "post_context": ["", ""]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "_get_response", "lineno": 181, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/whitenoise/middleware.py", "filename": "whitenoise/middleware.py", "module": "whitenoise.middleware", "function": "__call__", "lineno": 60, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "get_response", "lineno": 130, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/wsgi.py", "filename": "django/core/handlers/wsgi.py", "module": "django.core.handlers.wsgi", "function": "__call__", "lineno": 133, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle_request", "lineno": 179, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle", "lineno": 136, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "accept", "lineno": 31, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run_for_one", "lineno": 69, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run", "lineno": 125, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/base.py", "filename": "gunicorn/workers/base.py", "module": "gunicorn.workers.base", "function": "init_process", "lineno": 142, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_worker", "lineno": 589, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_workers", "lineno": 622, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "manage_workers", "lineno": 551, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "run", "lineno": 202, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 72, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 231, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/wsgiapp.py", "filename": "gunicorn/app/wsgiapp.py", "module": "gunicorn.app.wsgiapp", "function": "run", "lineno": 67, "library_frame": true}, {"abs_path": "/app/venv/bin/gunicorn", "filename": "bin/gunicorn", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(run())", "post_context": []}]}} {"transaction": {"id": "008fd991f6b1b368", "trace_id": "b0d747be273d3869079b5be294e78ff4", "name": "GET opbeans.views.home", "type": "request", "duration": 649.1607089992613, "result": "HTTP 2xx", "timestamp": 1646055469944869, "outcome": "success", "sampled": true, "span_count": {"started": 2, "dropped": 0}, "sample_rate": 1.0, "parent_id": "9f18d19c0501d45c", "context": {"request": {"env": {"REMOTE_ADDR": "172.23.0.11", "SERVER_NAME": "0.0.0.0", "SERVER_PORT": "3000"}, "method": "GET", "socket": {"remote_address": "172.23.0.11"}, "cookies": {}, "headers": {"host": "opbeans-python:3000", "user-agent": "curl/7.74.0", "accept": "*/*"}, "url": {"full": "http://opbeans-python:3000/", "protocol": "http:", "hostname": "opbeans-python", "pathname": "/", "port": "3000"}}, "response": {"status_code": 200, "headers": {"Content-Type": "text/html; charset=utf-8", "X-Frame-Options": "DENY", "Content-Length": "871", "Vary": "Cookie", "X-Content-Type-Options": "nosniff", "Referrer-Policy": "same-origin"}}, "user": {"is_authenticated": true, "id": 11, "username": "crystal68", "email": "crystal68@gonzales-horn.info"}, "tags": {"request_id": "0ee4f81e-f641-4eea-9b5a-daadf6036601", "customer_tier": "$$"}}}} @@ -133,9 +124,7 @@ {"metricset": {"samples": {"prometheus.metrics.python_info": {"value": 1, "type": "gauge"}}, "timestamp": 1646055476551954, "tags": {"implementation": "CPython", "major": "3", "minor": "10", "patchlevel": "2", "version": "3.10.2"}}} {"metricset": {"samples": {"prometheus.metrics.django_migrations_unapplied_total": {"value": 0.0, "type": "gauge"}, "prometheus.metrics.django_migrations_applied_total": {"value": 20.0, "type": "gauge"}}, "timestamp": 1646055476551954, "tags": {"connection": "default"}}} {"metricset": {"samples": {"prometheus.metrics.django_http_requests_latency_seconds_by_view_method": {"counts": [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], "values": [0.005, 0.0175, 0.037500000000000006, 0.0625, 0.0875, 0.175, 0.375, 0.625, 0.875, 1.75, 3.75, 6.25, 8.75, 17.5, 37.5, 62.5, 75.0], "type": "histogram"}}, "timestamp": 1646055476551954, "tags": {"method": "GET", "view": "opbeans.views.home"}}} -{"metadata": {"service": {"name": "opbeans-python", "environment": "production", "version": "None", "agent": {"name": "python", "version": "6.7.2"}, "language": {"name": "python", "version": "3.10.2"}, "runtime": {"name": "CPython", "version": "3.10.2"}, "framework": {"name": "django", "version": "3.2.11"}}, "process": {"pid": 116, "ppid": 102, "argv": ["/app/venv/bin/celery", "-A", "opbeans", "beat", "-l", "info"], "title": null}, "system": {"hostname": "88abe6e3ded4", "architecture": "x86_64", "platform": "linux"}}} {"metricset": {"samples": {"system.cpu.total.norm.pct": {"value": 0.8481565612441028, "type": "gauge"}, "system.memory.actual.free": {"value": 7987900416, "type": "gauge"}, "system.memory.total": {"value": 12544401408, "type": "gauge"}, "system.process.cpu.total.norm.pct": {"value": 0.0, "type": "gauge"}, "system.process.memory.size": {"value": 0, "type": "gauge"}, "system.process.memory.rss.bytes": {"value": 0, "type": "gauge"}}, "timestamp": 1646055478237383}} -{"metadata": {"service": {"name": "opbeans-python", "environment": "production", "version": "None", "agent": {"name": "python", "version": "6.7.2"}, "language": {"name": "python", "version": "3.10.2"}, "runtime": {"name": "CPython", "version": "3.10.2"}, "framework": {"name": "django", "version": "3.2.11"}}, "process": {"pid": 156, "ppid": 113, "argv": ["/app/venv/bin/celery", "-A", "opbeans", "worker", "--concurrency=1", "-l", "info"], "title": null}, "system": {"hostname": "88abe6e3ded4", "architecture": "x86_64", "platform": "linux"}}} {"span": {"id": "69c412d8ece4edba", "transaction_id": "0698ae710fa7721f", "trace_id": "85738622c99b14f952ae663bd4a945ab", "parent_id": "0698ae710fa7721f", "name": "SELECT FROM opbeans_product", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055473130648, "duration": 68.84650001302361, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT SUM(\"total_revenue\"), SUM(\"total_cost\"), SUM(\"total_profit\") FROM (SELECT COUNT(\"opbeans_orderline\".\"order_id\") AS \"order_count\", (\"opbeans_product\".\"selling_price\" - \"opbeans_product\".\"cost\") AS \"per_item_profit\", (COUNT(\"opbeans_orderline\".\"order_id\") * (\"opbeans_product\".\"selling_price\" - \"opbeans_product\".\"cost\")) AS \"total_profit\", (COUNT(\"opbeans_orderline\".\"order_id\") * \"opbeans_product\".\"selling_price\") AS \"total_revenue\", (COUNT(\"opbeans_orderline\".\"order_id\") * \"opbeans_product\".\"cost\") AS \"total_cost\" FROM \"opbeans_product\" LEFT OUTER JOIN \"opbeans_orderline\" ON (\"opbeans_product\".\"id\" = \"opbeans_orderline\".\"product_id\") GROUP BY \"opbeans_product\".\"id\", (\"opbeans_product\".\"selling_price\" - \"opbeans_product\".\"cost\")) subquery"}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}, "stacktrace": [{"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/backends/utils.py", "filename": "django/db/backends/utils.py", "module": "django.db.backends.utils", "function": "_execute_with_wrappers", "lineno": 75, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/backends/utils.py", "filename": "django/db/backends/utils.py", "module": "django.db.backends.utils", "function": "execute", "lineno": 66, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/sql/compiler.py", "filename": "django/db/models/sql/compiler.py", "module": "django.db.models.sql.compiler", "function": "execute_sql", "lineno": 1175, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/sql/query.py", "filename": "django/db/models/sql/query.py", "module": "django.db.models.sql.query", "function": "get_aggregation", "lineno": 504, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/query.py", "filename": "django/db/models/query.py", "module": "django.db.models.query", "function": "aggregate", "lineno": 399, "library_frame": true}, {"abs_path": "/app/opbeans/utils.py", "filename": "opbeans/utils.py", "module": "opbeans.utils", "function": "stats", "lineno": 9, "library_frame": false, "pre_context": ["", "def stats():"], "context_line": " numbers = m.Product.objects.annotate(", "post_context": [" order_count=models.Count('order'),", " per_item_profit=models.F('selling_price') - models.F('cost')"]}, {"abs_path": "/app/opbeans/tasks.py", "filename": "opbeans/tasks.py", "module": "opbeans.tasks", "function": "update_stats", "lineno": 22, "library_frame": false, "pre_context": [" elasticapm.label(a=\"x\", b=\"y\")", " elasticapm.set_custom_context({\"a\": \"x\", \"b\": \"y\"})"], "context_line": " cache.set(utils.stats.cache_key, utils.stats(), 60)", "post_context": ["", ""]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "__protected_call__", "lineno": 734, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "trace_task", "lineno": 451, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "fast_trace_task", "lineno": 649, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "workloop", "lineno": 362, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "__call__", "lineno": 292, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "run", "lineno": 114, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "_bootstrap", "lineno": 327, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/popen_fork.py", "filename": "billiard/popen_fork.py", "module": "billiard.popen_fork", "function": "_launch", "lineno": 79, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/popen_fork.py", "filename": "billiard/popen_fork.py", "module": "billiard.popen_fork", "function": "__init__", "lineno": 24, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/context.py", "filename": "billiard/context.py", "module": "billiard.context", "function": "_Popen", "lineno": 333, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "start", "lineno": 124, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "_create_worker_process", "lineno": 1158, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/asynpool.py", "filename": "celery/concurrency/asynpool.py", "module": "celery.concurrency.asynpool", "function": "_create_worker_process", "lineno": 480, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "__init__", "lineno": 1046, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/asynpool.py", "filename": "celery/concurrency/asynpool.py", "module": "celery.concurrency.asynpool", "function": "__init__", "lineno": 463, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/prefork.py", "filename": "celery/concurrency/prefork.py", "module": "celery.concurrency.prefork", "function": "on_start", "lineno": 109, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/base.py", "filename": "celery/concurrency/base.py", "module": "celery.concurrency.base", "function": "start", "lineno": 129, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bootsteps.py", "filename": "celery/bootsteps.py", "module": "celery.bootsteps", "function": "start", "lineno": 365, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bootsteps.py", "filename": "celery/bootsteps.py", "module": "celery.bootsteps", "function": "start", "lineno": 116, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/worker/worker.py", "filename": "celery/worker/worker.py", "module": "celery.worker.worker", "function": "start", "lineno": 203, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/worker.py", "filename": "celery/bin/worker.py", "module": "celery.bin.worker", "function": "worker", "lineno": 351, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/base.py", "filename": "celery/bin/base.py", "module": "celery.bin.base", "function": "caller", "lineno": 134, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/decorators.py", "filename": "click/decorators.py", "module": "click.decorators", "function": "new_func", "lineno": 26, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 754, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 1395, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 1659, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "main", "lineno": 1053, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "__call__", "lineno": 1128, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/celery.py", "filename": "celery/bin/celery.py", "module": "celery.bin.celery", "function": "main", "lineno": 213, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/__main__.py", "filename": "celery/__main__.py", "module": "celery.__main__", "function": "main", "lineno": 15, "library_frame": true}, {"abs_path": "/app/venv/bin/celery", "filename": "bin/celery", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(main())", "post_context": []}]}} {"span": {"id": "164f79efa1ab6481", "transaction_id": "0698ae710fa7721f", "trace_id": "85738622c99b14f952ae663bd4a945ab", "parent_id": "0698ae710fa7721f", "name": "SELECT FROM opbeans_product", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055473225440, "duration": 3.9913749787956476, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT COUNT(*) AS \"__count\" FROM \"opbeans_product\""}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}}} {"span": {"id": "b96fc4f27ddf0cfa", "transaction_id": "0698ae710fa7721f", "trace_id": "85738622c99b14f952ae663bd4a945ab", "parent_id": "0698ae710fa7721f", "name": "SELECT FROM opbeans_customer", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055473243033, "duration": 4.596291983034462, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT COUNT(*) AS \"__count\" FROM \"opbeans_customer\""}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}}} @@ -152,7 +141,6 @@ {"span": {"id": "ef1d2d1bafb3b64d", "transaction_id": "c26f35081f272657", "trace_id": "e4ca67bca81eed389c0989b0e2dadcbb", "parent_id": "c26f35081f272657", "name": "GET", "type": "db", "subtype": "redis", "action": "query", "timestamp": 1646055477870298, "duration": 2.70641699898988, "outcome": "success", "sample_rate": 1.0, "context": {"destination": {"port": 6379, "address": "redis", "service": {"resource": "redis", "name": "", "type": ""}}}}} {"span": {"id": "40bfcb7c18320c68", "transaction_id": "c26f35081f272657", "trace_id": "e4ca67bca81eed389c0989b0e2dadcbb", "parent_id": "c26f35081f272657", "name": "Pipeline.execute", "type": "db", "subtype": "redis", "action": "query", "timestamp": 1646055477883128, "duration": 2.73483301862143, "outcome": "success", "sample_rate": 1.0, "context": {"destination": {"port": 6379, "address": "redis", "service": {"resource": "redis", "name": "", "type": ""}}}}} {"transaction": {"id": "c26f35081f272657", "trace_id": "e4ca67bca81eed389c0989b0e2dadcbb", "name": "opbeans.tasks.update_stats", "type": "celery", "duration": 173.22366600274108, "result": "SUCCESS", "timestamp": 1646055477719267, "outcome": "success", "sampled": true, "span_count": {"started": 7, "dropped": 0}, "sample_rate": 1.0, "context": {"custom": {"a": "x", "b": "y"}, "tags": {"a": "x", "b": "y"}}}} -{"metadata": {"service": {"name": "opbeans-python", "environment": "production", "version": "None", "agent": {"name": "python", "version": "6.7.2"}, "language": {"name": "python", "version": "3.10.2"}, "runtime": {"name": "CPython", "version": "3.10.2"}, "framework": {"name": "django", "version": "3.2.11"}}, "process": {"pid": 156, "ppid": 113, "argv": ["/app/venv/bin/celery", "-A", "opbeans", "worker", "--concurrency=1", "-l", "info"], "title": null}, "system": {"hostname": "88abe6e3ded4", "architecture": "x86_64", "platform": "linux"}}} {"span": {"id": "b41ab445ec628c3c", "transaction_id": "f5112fb276fdf89b", "trace_id": "7ee55f69bd410642afe53ee778b2bfa9", "parent_id": "f5112fb276fdf89b", "name": "ES POST /py-orders/_search", "type": "db", "subtype": "elasticsearch", "action": "query", "timestamp": 1646055482177546, "duration": 136.853665986564, "outcome": "failure", "sample_rate": 1.0, "context": {"db": {"type": "elasticsearch", "statement": "{\"sort\":[{\"_id\":{\"order\":\"desc\"}}],\"from\":0,\"size\":1}"}, "destination": {"address": "http://elasticsearch:9200", "service": {"resource": "elasticsearch", "name": "", "type": ""}}, "http": {"status_code": 200}}, "stacktrace": [{"abs_path": "/app/venv/lib/python3.10/site-packages/elasticsearch_dsl/search.py", "filename": "elasticsearch_dsl/search.py", "module": "elasticsearch_dsl.search", "function": "execute", "lineno": 715, "library_frame": true}, {"abs_path": "/app/opbeans/tasks.py", "filename": "opbeans/tasks.py", "module": "opbeans.tasks", "function": "sync_orders", "lineno": 37, "library_frame": false, "pre_context": [" highest_id = None", " try:"], "context_line": " r = Search(index='py-orders').sort('-_id')[0].execute()", "post_context": [" highest_id = int(r.hits[0].meta.id)", " except TransportError as e:"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "__protected_call__", "lineno": 734, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "trace_task", "lineno": 451, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "fast_trace_task", "lineno": 649, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "workloop", "lineno": 362, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "__call__", "lineno": 292, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "run", "lineno": 114, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "_bootstrap", "lineno": 327, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/popen_fork.py", "filename": "billiard/popen_fork.py", "module": "billiard.popen_fork", "function": "_launch", "lineno": 79, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/popen_fork.py", "filename": "billiard/popen_fork.py", "module": "billiard.popen_fork", "function": "__init__", "lineno": 24, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/context.py", "filename": "billiard/context.py", "module": "billiard.context", "function": "_Popen", "lineno": 333, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "start", "lineno": 124, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "_create_worker_process", "lineno": 1158, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/asynpool.py", "filename": "celery/concurrency/asynpool.py", "module": "celery.concurrency.asynpool", "function": "_create_worker_process", "lineno": 480, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "__init__", "lineno": 1046, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/asynpool.py", "filename": "celery/concurrency/asynpool.py", "module": "celery.concurrency.asynpool", "function": "__init__", "lineno": 463, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/prefork.py", "filename": "celery/concurrency/prefork.py", "module": "celery.concurrency.prefork", "function": "on_start", "lineno": 109, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/base.py", "filename": "celery/concurrency/base.py", "module": "celery.concurrency.base", "function": "start", "lineno": 129, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bootsteps.py", "filename": "celery/bootsteps.py", "module": "celery.bootsteps", "function": "start", "lineno": 365, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bootsteps.py", "filename": "celery/bootsteps.py", "module": "celery.bootsteps", "function": "start", "lineno": 116, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/worker/worker.py", "filename": "celery/worker/worker.py", "module": "celery.worker.worker", "function": "start", "lineno": 203, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/worker.py", "filename": "celery/bin/worker.py", "module": "celery.bin.worker", "function": "worker", "lineno": 351, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/base.py", "filename": "celery/bin/base.py", "module": "celery.bin.base", "function": "caller", "lineno": 134, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/decorators.py", "filename": "click/decorators.py", "module": "click.decorators", "function": "new_func", "lineno": 26, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 754, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 1395, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 1659, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "main", "lineno": 1053, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "__call__", "lineno": 1128, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/celery.py", "filename": "celery/bin/celery.py", "module": "celery.bin.celery", "function": "main", "lineno": 213, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/__main__.py", "filename": "celery/__main__.py", "module": "celery.__main__", "function": "main", "lineno": 15, "library_frame": true}, {"abs_path": "/app/venv/bin/celery", "filename": "bin/celery", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(main())", "post_context": []}]}} {"span": {"id": "f3b6e6c913e71aee", "transaction_id": "f5112fb276fdf89b", "trace_id": "7ee55f69bd410642afe53ee778b2bfa9", "parent_id": "f5112fb276fdf89b", "name": "GET", "type": "db", "subtype": "redis", "action": "query", "timestamp": 1646055482389426, "duration": 4.450167005416006, "outcome": "success", "sample_rate": 1.0, "context": {"destination": {"port": 6379, "address": "redis", "service": {"resource": "redis", "name": "", "type": ""}}}}} {"span": {"id": "a01ecd8a84493f66", "transaction_id": "f5112fb276fdf89b", "trace_id": "7ee55f69bd410642afe53ee778b2bfa9", "parent_id": "f5112fb276fdf89b", "name": "Pipeline.execute", "type": "db", "subtype": "redis", "action": "query", "timestamp": 1646055482397029, "duration": 4.661499988287687, "outcome": "success", "sample_rate": 1.0, "context": {"destination": {"port": 6379, "address": "redis", "service": {"resource": "redis", "name": "", "type": ""}}}}} @@ -161,7 +149,6 @@ {"span": {"id": "14a4e7f0ced6fe3e", "transaction_id": "f5112fb276fdf89b", "trace_id": "7ee55f69bd410642afe53ee778b2bfa9", "parent_id": "f5112fb276fdf89b", "name": "SELECT FROM opbeans_order", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055482515551, "duration": 2.229332982096821, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT \"opbeans_order\".\"id\", \"opbeans_order\".\"customer_id\", \"opbeans_order\".\"created_at\" FROM \"opbeans_order\" LIMIT 21"}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}}} {"span": {"id": "754a53ed1461b6d2", "transaction_id": "f5112fb276fdf89b", "trace_id": "7ee55f69bd410642afe53ee778b2bfa9", "parent_id": "f5112fb276fdf89b", "name": "SELECT FROM opbeans_order", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055482530408, "duration": 1.5509170189034194, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT \"opbeans_order\".\"id\", \"opbeans_order\".\"customer_id\", \"opbeans_order\".\"created_at\" FROM \"opbeans_order\" LIMIT 21"}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}}} {"error": {"context": {"custom": {}}, "id": "c8143f29e2d59b02ef9c32388f1c5f93", "exception": {"message": "ValueError: Cannot use None as a query value", "type": "ValueError", "module": "builtins", "stacktrace": [{"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "trace_task", "lineno": 451, "library_frame": true, "vars": {"uuid": "2441edc3-e774-4cac-8d51-7ed757915deb", "args": [], "kwargs": {}, "request": {"lang": "py", "task": "opbeans.tasks.sync_orders", "id": "2441edc3-e774-4cac-8d51-7ed757915deb", "shadow": null, "eta": null, "expires": null, "group": null, "group_index": null, "retries": 0, "timelimit": [null, null], "": "(18 more elements)"}, "R": null, "I": null, "T": null, "Rstr": null, "retval": null, "state": null, "task_request": "", "_does_info": true, "app": "", "deduplicate_successful_tasks": false, "eager": false, "fun": "<@task: opbeans.tasks.sync_orders of opbeans at 0x401fc59ab0>", "hostname": "celery@88abe6e3ded4", "inherit_parent_priority": false, "loader_cleanup": ">", "loader_task_init": ">", "monotonic": "", "name": "opbeans.tasks.sync_orders", "on_error": ".on_error at 0x4020479c60>", "pid": 156, "pop_request": ">", "pop_task": ">", "postrun_receivers": [[["elasticapm-tracing-postrun", 274907146592], ".end_transaction at 0x401fc0f130>"], [[275412920512, 274907146592], ""]], "prerun_receivers": [[["elasticapm-tracing-prerun", 274907146592], ".begin_transaction at 0x401fa8d990>"], [[275412920368, 274907146592], ""]], "publish_result": true, "push_request": ">", "push_task": ">", "resultrepr_maxsize": 1024, "signature": "", "success_receivers": [], "task": "<@task: opbeans.tasks.sync_orders of opbeans at 0x401fc59ab0>", "task_after_return": null, "task_before_start": null, "task_on_success": null, "trace_ok_t": "", "track_started": false, "exc": "ValueError('Cannot use None as a query value')"}, "pre_context": [" task_before_start(uuid, args, kwargs)", ""], "context_line": " R = retval = fun(*args, **kwargs)", "post_context": [" state = SUCCESS", " except Reject as exc:"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "__protected_call__", "lineno": 734, "library_frame": true, "vars": {"self": "<@task: opbeans.tasks.sync_orders of opbeans at 0x401fc59ab0>", "args": [], "kwargs": {}, "stack": "", "req": ""}, "pre_context": [" len(stack) == 1 and not req.called_directly:", " req._protected = 1"], "context_line": " return self.run(*args, **kwargs)", "post_context": [" return orig(self, *args, **kwargs)", " BaseTask.__call__ = __protected_call__"]}, {"abs_path": "/app/opbeans/tasks.py", "filename": "opbeans/tasks.py", "module": "opbeans.tasks", "function": "sync_orders", "lineno": 43, "library_frame": false, "vars": {"highest_id": null, "order_docs": []}, "pre_context": [" highest_id = 0", " order_docs = []"], "context_line": " for order in models.Order.objects.filter(id__gt=highest_id).prefetch_related('customer'):", "post_context": [" order_docs.append(documents.Order(**order.to_search()).to_dict(include_meta=True))", " bulk(connections.get_connection(), order_docs)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/manager.py", "filename": "django/db/models/manager.py", "module": "django.db.models.manager", "function": "manager_method", "lineno": 85, "library_frame": true, "vars": {"self": "", "args": [], "kwargs": {"id__gt": null}, "name": "filter"}, "pre_context": [" def create_method(name, method):", " def manager_method(self, *args, **kwargs):"], "context_line": " return getattr(self.get_queryset(), name)(*args, **kwargs)", "post_context": [" manager_method.__name__ = method.__name__", " manager_method.__doc__ = method.__doc__"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/query.py", "filename": "django/db/models/query.py", "module": "django.db.models.query", "function": "filter", "lineno": 941, "library_frame": true, "vars": {"self": ", , , , , , , , , , , , , , , , , , , , , , , , ", "existing_inner": [], "self": ""}, "pre_context": [" # So, demotion is OK.", " existing_inner = {a for a in self.alias_map if self.alias_map[a].join_type == INNER}"], "context_line": " clause, _ = self._add_q(q_object, self.used_aliases)", "post_context": [" if clause:", " self.where.add(clause, AND)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/sql/query.py", "filename": "django/db/models/sql/query.py", "module": "django.db.models.sql.query", "function": "_add_q", "lineno": 1412, "library_frame": true, "vars": {"self": "", "q_object": "", "used_aliases": ["opbeans_order"], "branch_negated": false, "current_negated": false, "allow_joins": true, "split_subq": true, "check_filterable": true, "connector": "AND", "target_clause": "", "joinpromoter": "", "child": ["id__gt", null]}, "pre_context": [" joinpromoter = JoinPromoter(q_object.connector, len(q_object.children), current_negated)", " for child in q_object.children:"], "context_line": " child_clause, needed_inner = self.build_filter(", "post_context": [" child, can_reuse=used_aliases, branch_negated=branch_negated,", " current_negated=current_negated, allow_joins=allow_joins,"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/sql/query.py", "filename": "django/db/models/sql/query.py", "module": "django.db.models.sql.query", "function": "build_filter", "lineno": 1347, "library_frame": true, "vars": {"self": "", "filter_expr": ["id__gt", null], "branch_negated": false, "current_negated": false, "can_reuse": ["opbeans_order"], "allow_joins": true, "split_subq": true, "reuse_with_filtered_relation": false, "check_filterable": true, "clause": "", "arg": "id__gt", "value": null, "lookups": ["gt"], "parts": ["id"], "reffed_expression": false, "used_joins": ["opbeans_order"], "opts": "", "alias": "opbeans_order", "allow_many": true, "join_info": ["", [""], "", ["opbeans_order"], [], ".final_transformer at 0x402047a290>"], "targets": [""], "join_list": ["opbeans_order"], "col": "Col(opbeans_order, opbeans.Order.id)", "pre_joins": {}}, "pre_context": [" col = self._get_col(targets[0], join_info.final_field, alias)", ""], "context_line": " condition = self.build_lookup(lookups, col, value)", "post_context": [" lookup_type = condition.lookup_name", " clause.add(condition, AND)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/sql/query.py", "filename": "django/db/models/sql/query.py", "module": "django.db.models.sql.query", "function": "build_lookup", "lineno": 1198, "library_frame": true, "vars": {"self": "", "lookups": ["gt"], "lhs": "Col(opbeans_order, opbeans.Order.id)", "rhs": null, "transforms": [], "lookup_name": "gt", "lookup_class": "", "lookup": ""}, "pre_context": [" if lookup.rhs is None and not lookup.can_use_none_as_rhs:", " if lookup_name not in ('exact', 'iexact'):"], "context_line": " raise ValueError(\"Cannot use None as a query value\")", "post_context": [" return lhs.get_lookup('isnull')(lhs, True)", ""]}], "handled": false}, "culprit": "django.db.models.sql.query.build_lookup", "timestamp": 1646055482410893, "trace_id": "7ee55f69bd410642afe53ee778b2bfa9", "parent_id": "f5112fb276fdf89b", "transaction_id": "f5112fb276fdf89b", "transaction": {"sampled": true, "type": "celery"}}} -{"metadata": {"service": {"name": "opbeans-python", "environment": "production", "version": "None", "agent": {"name": "python", "version": "6.7.2"}, "language": {"name": "python", "version": "3.10.2"}, "runtime": {"name": "CPython", "version": "3.10.2"}, "framework": {"name": "django", "version": "3.2.11"}}, "process": {"pid": 121, "ppid": 109, "argv": ["/app/venv/bin/gunicorn", "--workers", "4", "--bind", "0.0.0.0:3000", "opbeans.wsgi"], "title": null}, "system": {"hostname": "88abe6e3ded4", "architecture": "x86_64", "platform": "linux"}}} {"metricset": {"samples": {"system.cpu.total.norm.pct": {"value": 0.8562233626163347, "type": "gauge"}, "system.memory.actual.free": {"value": 7626551296, "type": "gauge"}, "system.memory.total": {"value": 12544401408, "type": "gauge"}, "system.process.cpu.total.norm.pct": {"value": 0.0, "type": "gauge"}, "system.process.memory.size": {"value": 0, "type": "gauge"}, "system.process.memory.rss.bytes": {"value": 0, "type": "gauge"}}, "timestamp": 1646055476696042}} {"metricset": {"samples": {"span.self_time.sum.us": {"value": 212279}, "span.self_time.count": {"value": 1}}, "timestamp": 1646055476696269, "tags": {}, "span": {"type": "external", "subtype": "http"}, "transaction": {"name": "GET opbeans.views.top_products", "type": "request"}}} {"metricset": {"samples": {"span.self_time.sum.us": {"value": 319624}, "span.self_time.count": {"value": 1}}, "timestamp": 1646055476696269, "tags": {}, "span": {"type": "app", "subtype": ""}, "transaction": {"name": "GET opbeans.views.top_products", "type": "request"}}} @@ -180,7 +167,6 @@ {"span": {"id": "20ad9b1b4c3fac44", "transaction_id": "a2cb9cb094275cb5", "trace_id": "887c49294923a520a9b8e9a698ebd9da", "parent_id": "a2cb9cb094275cb5", "name": "hard-home-work", "type": "code", "subtype": "custom", "action": null, "timestamp": 1646055480865649, "duration": 90.46258401940577, "outcome": "success", "sample_rate": 1.0, "stacktrace": [{"abs_path": "/app/opbeans/views.py", "filename": "opbeans/views.py", "module": "opbeans.views", "function": "home", "lineno": 308, "library_frame": false, "pre_context": ["", "def home(request):"], "context_line": " with elasticapm.capture_span(\"hard-home-work\"):", "post_context": [" time.sleep(random.random() / 2.0)", " return render(request, \"index.html\")"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "_get_response", "lineno": 181, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/whitenoise/middleware.py", "filename": "whitenoise/middleware.py", "module": "whitenoise.middleware", "function": "__call__", "lineno": 60, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "get_response", "lineno": 130, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/wsgi.py", "filename": "django/core/handlers/wsgi.py", "module": "django.core.handlers.wsgi", "function": "__call__", "lineno": 133, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle_request", "lineno": 179, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle", "lineno": 136, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "accept", "lineno": 31, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run_for_one", "lineno": 69, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run", "lineno": 125, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/base.py", "filename": "gunicorn/workers/base.py", "module": "gunicorn.workers.base", "function": "init_process", "lineno": 142, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_worker", "lineno": 589, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_workers", "lineno": 622, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "manage_workers", "lineno": 551, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "run", "lineno": 202, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 72, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 231, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/wsgiapp.py", "filename": "gunicorn/app/wsgiapp.py", "module": "gunicorn.app.wsgiapp", "function": "run", "lineno": 67, "library_frame": true}, {"abs_path": "/app/venv/bin/gunicorn", "filename": "bin/gunicorn", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(run())", "post_context": []}]}} {"span": {"id": "51a9f35e2a8f2f56", "transaction_id": "a2cb9cb094275cb5", "trace_id": "887c49294923a520a9b8e9a698ebd9da", "parent_id": "a2cb9cb094275cb5", "name": "index.html", "type": "template", "subtype": "django", "action": "render", "timestamp": 1646055481033417, "duration": 11.555875011254102, "outcome": "success", "sample_rate": 1.0, "stacktrace": [{"abs_path": "/app/venv/lib/python3.10/site-packages/django/template/backends/django.py", "filename": "django/template/backends/django.py", "module": "django.template.backends.django", "function": "render", "lineno": 61, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/template/loader.py", "filename": "django/template/loader.py", "module": "django.template.loader", "function": "render_to_string", "lineno": 62, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/shortcuts.py", "filename": "django/shortcuts.py", "module": "django.shortcuts", "function": "render", "lineno": 19, "library_frame": true}, {"abs_path": "/app/opbeans/views.py", "filename": "opbeans/views.py", "module": "opbeans.views", "function": "home", "lineno": 310, "library_frame": false, "pre_context": [" with elasticapm.capture_span(\"hard-home-work\"):", " time.sleep(random.random() / 2.0)"], "context_line": " return render(request, \"index.html\")", "post_context": ["", ""]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "_get_response", "lineno": 181, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/whitenoise/middleware.py", "filename": "whitenoise/middleware.py", "module": "whitenoise.middleware", "function": "__call__", "lineno": 60, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "get_response", "lineno": 130, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/wsgi.py", "filename": "django/core/handlers/wsgi.py", "module": "django.core.handlers.wsgi", "function": "__call__", "lineno": 133, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle_request", "lineno": 179, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle", "lineno": 136, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "accept", "lineno": 31, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run_for_one", "lineno": 69, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run", "lineno": 125, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/base.py", "filename": "gunicorn/workers/base.py", "module": "gunicorn.workers.base", "function": "init_process", "lineno": 142, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_worker", "lineno": 589, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_workers", "lineno": 622, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "manage_workers", "lineno": 551, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "run", "lineno": 202, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 72, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 231, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/wsgiapp.py", "filename": "gunicorn/app/wsgiapp.py", "module": "gunicorn.app.wsgiapp", "function": "run", "lineno": 67, "library_frame": true}, {"abs_path": "/app/venv/bin/gunicorn", "filename": "bin/gunicorn", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(run())", "post_context": []}]}} {"transaction": {"id": "a2cb9cb094275cb5", "trace_id": "887c49294923a520a9b8e9a698ebd9da", "name": "GET opbeans.views.home", "type": "request", "duration": 206.68483301415108, "result": "HTTP 2xx", "timestamp": 1646055480857937, "outcome": "success", "sampled": true, "span_count": {"started": 2, "dropped": 0}, "sample_rate": 1.0, "parent_id": "e44597576eae8241", "context": {"request": {"env": {"REMOTE_ADDR": "172.23.0.11", "SERVER_NAME": "0.0.0.0", "SERVER_PORT": "3000"}, "method": "GET", "socket": {"remote_address": "172.23.0.11"}, "cookies": {}, "headers": {"host": "opbeans-python:3000", "user-agent": "curl/7.74.0", "accept": "*/*"}, "url": {"full": "http://opbeans-python:3000/", "protocol": "http:", "hostname": "opbeans-python", "pathname": "/", "port": "3000"}}, "response": {"status_code": 200, "headers": {"Content-Type": "text/html; charset=utf-8", "X-Frame-Options": "DENY", "Content-Length": "871", "Vary": "Cookie", "X-Content-Type-Options": "nosniff", "Referrer-Policy": "same-origin"}}, "user": {"is_authenticated": true, "id": 19, "username": "michael18", "email": "michael18@cross.com"}, "tags": {"request_id": "b108c1b8-d280-44f3-b3d2-962bbede8775", "customer_tier": "$"}}}} -{"metadata": {"service": {"name": "opbeans-python", "environment": "production", "version": "None", "agent": {"name": "python", "version": "6.7.2"}, "language": {"name": "python", "version": "3.10.2"}, "runtime": {"name": "CPython", "version": "3.10.2"}, "framework": {"name": "django", "version": "3.2.11"}}, "process": {"pid": 119, "ppid": 109, "argv": ["/app/venv/bin/gunicorn", "--workers", "4", "--bind", "0.0.0.0:3000", "opbeans.wsgi"], "title": null}, "system": {"hostname": "88abe6e3ded4", "architecture": "x86_64", "platform": "linux"}}} {"metricset": {"samples": {"system.cpu.total.norm.pct": {"value": 0.8529463040446305, "type": "gauge"}, "system.memory.actual.free": {"value": 7623720960, "type": "gauge"}, "system.memory.total": {"value": 12544401408, "type": "gauge"}, "system.process.cpu.total.norm.pct": {"value": 0.0, "type": "gauge"}, "system.process.memory.size": {"value": 0, "type": "gauge"}, "system.process.memory.rss.bytes": {"value": 0, "type": "gauge"}}, "timestamp": 1646055477235589}} {"metricset": {"samples": {"span.self_time.sum.us": {"value": 128256}, "span.self_time.count": {"value": 1}}, "timestamp": 1646055477236310, "tags": {}, "span": {"type": "code", "subtype": "custom"}, "transaction": {"name": "GET opbeans.views.home", "type": "request"}}} {"metricset": {"samples": {"span.self_time.sum.us": {"value": 99932}, "span.self_time.count": {"value": 1}}, "timestamp": 1646055477236310, "tags": {}, "span": {"type": "template", "subtype": "django"}, "transaction": {"name": "GET opbeans.views.home", "type": "request"}}} @@ -202,20 +188,17 @@ {"metricset": {"samples": {"prometheus.metrics.django_migrations_unapplied_total": {"value": 0.0, "type": "gauge"}, "prometheus.metrics.django_migrations_applied_total": {"value": 20.0, "type": "gauge"}}, "timestamp": 1646055477397807, "tags": {"connection": "default"}}} {"metricset": {"samples": {"prometheus.metrics.django_http_requests_latency_seconds_by_view_method": {"counts": [0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0], "values": [0.005, 0.0175, 0.037500000000000006, 0.0625, 0.0875, 0.175, 0.375, 0.625, 0.875, 1.75, 3.75, 6.25, 8.75, 17.5, 37.5, 62.5, 75.0], "type": "histogram"}}, "timestamp": 1646055477397807, "tags": {"method": "GET", "view": "opbeans.views.home"}}} {"metricset": {"samples": {"prometheus.metrics.django_http_requests_latency_seconds_by_view_method": {"counts": [0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "values": [0.005, 0.0175, 0.037500000000000006, 0.0625, 0.0875, 0.175, 0.375, 0.625, 0.875, 1.75, 3.75, 6.25, 8.75, 17.5, 37.5, 62.5, 75.0], "type": "histogram"}}, "timestamp": 1646055477397807, "tags": {"method": "GET", "view": "order-detail"}}} -{"metadata": {"service": {"name": "opbeans-python", "environment": "production", "version": "None", "agent": {"name": "python", "version": "6.7.2"}, "language": {"name": "python", "version": "3.10.2"}, "runtime": {"name": "CPython", "version": "3.10.2"}, "framework": {"name": "django", "version": "3.2.11"}}, "process": {"pid": 113, "ppid": 100, "argv": ["/app/venv/bin/celery", "-A", "opbeans", "worker", "--concurrency=1", "-l", "info"], "title": null}, "system": {"hostname": "88abe6e3ded4", "architecture": "x86_64", "platform": "linux"}}} {"metricset": {"samples": {"system.cpu.total.norm.pct": {"value": 0.8390714658320292, "type": "gauge"}, "system.memory.actual.free": {"value": 7936069632, "type": "gauge"}, "system.memory.total": {"value": 12544401408, "type": "gauge"}, "system.process.cpu.total.norm.pct": {"value": 0.0, "type": "gauge"}, "system.process.memory.size": {"value": 0, "type": "gauge"}, "system.process.memory.rss.bytes": {"value": 0, "type": "gauge"}}, "timestamp": 1646055479454087}} {"metricset": {"samples": {"prometheus.metrics.python_gc_objects_collected": {"value": 1536}, "prometheus.metrics.python_gc_objects_uncollectable": {"value": 0}, "prometheus.metrics.python_gc_collections": {"value": 267}}, "timestamp": 1646055479469567, "tags": {"generation": "0"}}} {"metricset": {"samples": {"prometheus.metrics.python_gc_objects_collected": {"value": 41}, "prometheus.metrics.python_gc_objects_uncollectable": {"value": 0}, "prometheus.metrics.python_gc_collections": {"value": 3}}, "timestamp": 1646055479469567, "tags": {"generation": "2"}}} {"metricset": {"samples": {"prometheus.metrics.process_cpu_seconds": {"value": 0.0}, "prometheus.metrics.opbeans_python_line_items": {"value": 0.0}, "prometheus.metrics.process_virtual_memory_bytes": {"value": 0.0, "type": "gauge"}, "prometheus.metrics.process_resident_memory_bytes": {"value": 0.0, "type": "gauge"}, "prometheus.metrics.process_start_time_seconds": {"value": 1645917773.0, "type": "gauge"}, "prometheus.metrics.process_open_fds": {"value": 30, "type": "gauge"}, "prometheus.metrics.process_max_fds": {"value": 1048576.0, "type": "gauge"}, "prometheus.metrics.opbeans_python_orders.sum": {"value": 0.0}, "prometheus.metrics.opbeans_python_orders.count": {"value": 0.0}}, "timestamp": 1646055479469567}} {"metricset": {"samples": {"prometheus.metrics.python_info": {"value": 1, "type": "gauge"}}, "timestamp": 1646055479469567, "tags": {"implementation": "CPython", "major": "3", "minor": "10", "patchlevel": "2", "version": "3.10.2"}}} {"metricset": {"samples": {"prometheus.metrics.django_migrations_unapplied_total": {"value": 0.0, "type": "gauge"}, "prometheus.metrics.django_migrations_applied_total": {"value": 20.0, "type": "gauge"}}, "timestamp": 1646055479469567, "tags": {"connection": "default"}}} -{"metadata": {"service": {"name": "opbeans-python", "environment": "production", "version": "None", "agent": {"name": "python", "version": "6.7.2"}, "language": {"name": "python", "version": "3.10.2"}, "runtime": {"name": "CPython", "version": "3.10.2"}, "framework": {"name": "django", "version": "3.2.11"}}, "process": {"pid": 116, "ppid": 102, "argv": ["/app/venv/bin/celery", "-A", "opbeans", "beat", "-l", "info"], "title": null}, "system": {"hostname": "88abe6e3ded4", "architecture": "x86_64", "platform": "linux"}}} {"metricset": {"samples": {"prometheus.metrics.python_gc_objects_collected": {"value": 1614}, "prometheus.metrics.python_gc_objects_uncollectable": {"value": 0}, "prometheus.metrics.python_gc_collections": {"value": 254}}, "timestamp": 1646055478307534, "tags": {"generation": "0"}}} {"metricset": {"samples": {"prometheus.metrics.python_gc_objects_collected": {"value": 36}, "prometheus.metrics.python_gc_objects_uncollectable": {"value": 0}, "prometheus.metrics.python_gc_collections": {"value": 2}}, "timestamp": 1646055478307534, "tags": {"generation": "2"}}} {"metricset": {"samples": {"prometheus.metrics.process_cpu_seconds": {"value": 0.0}, "prometheus.metrics.opbeans_python_line_items": {"value": 0.0}, "prometheus.metrics.process_virtual_memory_bytes": {"value": 0.0, "type": "gauge"}, "prometheus.metrics.process_resident_memory_bytes": {"value": 0.0, "type": "gauge"}, "prometheus.metrics.process_start_time_seconds": {"value": 1645917773.0, "type": "gauge"}, "prometheus.metrics.process_open_fds": {"value": 12, "type": "gauge"}, "prometheus.metrics.process_max_fds": {"value": 1048576.0, "type": "gauge"}, "prometheus.metrics.opbeans_python_orders.sum": {"value": 0.0}, "prometheus.metrics.opbeans_python_orders.count": {"value": 0.0}}, "timestamp": 1646055478307534}} {"metricset": {"samples": {"prometheus.metrics.python_info": {"value": 1, "type": "gauge"}}, "timestamp": 1646055478307534, "tags": {"implementation": "CPython", "major": "3", "minor": "10", "patchlevel": "2", "version": "3.10.2"}}} {"metricset": {"samples": {"prometheus.metrics.django_migrations_unapplied_total": {"value": 0.0, "type": "gauge"}, "prometheus.metrics.django_migrations_applied_total": {"value": 20.0, "type": "gauge"}}, "timestamp": 1646055478307534, "tags": {"connection": "default"}}} -{"metadata": {"service": {"name": "opbeans-python", "environment": "production", "version": "None", "agent": {"name": "python", "version": "6.7.2"}, "language": {"name": "python", "version": "3.10.2"}, "runtime": {"name": "CPython", "version": "3.10.2"}, "framework": {"name": "django", "version": "3.2.11"}}, "process": {"pid": 123, "ppid": 109, "argv": ["/app/venv/bin/gunicorn", "--workers", "4", "--bind", "0.0.0.0:3000", "opbeans.wsgi"], "title": null}, "system": {"hostname": "88abe6e3ded4", "architecture": "x86_64", "platform": "linux"}}} {"metricset": {"samples": {"system.cpu.total.norm.pct": {"value": 0.8413516109316337, "type": "gauge"}, "system.memory.actual.free": {"value": 7945338880, "type": "gauge"}, "system.memory.total": {"value": 12544401408, "type": "gauge"}, "system.process.cpu.total.norm.pct": {"value": 0.0, "type": "gauge"}, "system.process.memory.size": {"value": 0, "type": "gauge"}, "system.process.memory.rss.bytes": {"value": 0, "type": "gauge"}}, "timestamp": 1646055479040484}} {"metricset": {"samples": {"span.self_time.sum.us": {"value": 112439}, "span.self_time.count": {"value": 49}}, "timestamp": 1646055479040971, "tags": {}, "span": {"type": "db", "subtype": "postgresql"}, "transaction": {"name": "GET opbeans.views.orders", "type": "request"}}} {"metricset": {"samples": {"span.self_time.sum.us": {"value": 5024295}, "span.self_time.count": {"value": 1}}, "timestamp": 1646055479040971, "tags": {}, "span": {"type": "code", "subtype": "custom"}, "transaction": {"name": "GET opbeans.views.orders", "type": "request"}}} @@ -238,7 +221,6 @@ {"metricset": {"samples": {"prometheus.metrics.django_migrations_unapplied_total": {"value": 0.0, "type": "gauge"}, "prometheus.metrics.django_migrations_applied_total": {"value": 20.0, "type": "gauge"}}, "timestamp": 1646055479066062, "tags": {"connection": "default"}}} {"metricset": {"samples": {"prometheus.metrics.django_http_requests_latency_seconds_by_view_method": {"counts": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0], "values": [0.005, 0.0175, 0.037500000000000006, 0.0625, 0.0875, 0.175, 0.375, 0.625, 0.875, 1.75, 3.75, 6.25, 8.75, 17.5, 37.5, 62.5, 75.0], "type": "histogram"}}, "timestamp": 1646055479066062, "tags": {"method": "GET", "view": "orders"}}} {"metricset": {"samples": {"prometheus.metrics.django_http_requests_latency_seconds_by_view_method": {"counts": [0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], "values": [0.005, 0.0175, 0.037500000000000006, 0.0625, 0.0875, 0.175, 0.375, 0.625, 0.875, 1.75, 3.75, 6.25, 8.75, 17.5, 37.5, 62.5, 75.0], "type": "histogram"}}, "timestamp": 1646055479066062, "tags": {"method": "GET", "view": "opbeans.views.home"}}} -{"metadata": {"service": {"name": "opbeans-python", "environment": "production", "version": "None", "agent": {"name": "python", "version": "6.7.2"}, "language": {"name": "python", "version": "3.10.2"}, "runtime": {"name": "CPython", "version": "3.10.2"}, "framework": {"name": "django", "version": "3.2.11"}}, "process": {"pid": 156, "ppid": 113, "argv": ["/app/venv/bin/celery", "-A", "opbeans", "worker", "--concurrency=1", "-l", "info"], "title": null}, "system": {"hostname": "88abe6e3ded4", "architecture": "x86_64", "platform": "linux"}}} {"transaction": {"id": "f5112fb276fdf89b", "trace_id": "7ee55f69bd410642afe53ee778b2bfa9", "name": "opbeans.tasks.sync_orders", "type": "celery", "duration": 481.1979999940377, "result": "FAILURE", "timestamp": 1646055482135205, "outcome": "failure", "sampled": true, "span_count": {"started": 7, "dropped": 0}, "sample_rate": 1.0, "context": {"tags": {}}}} {"span": {"id": "fcfd296d2c69fcf9", "transaction_id": "428498c5ef8cd15c", "trace_id": "b16eb14e432c1f78b32d0a00f68f318b", "parent_id": "428498c5ef8cd15c", "name": "SELECT FROM opbeans_product", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055482689433, "duration": 58.52708299062215, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT SUM(\"total_revenue\"), SUM(\"total_cost\"), SUM(\"total_profit\") FROM (SELECT COUNT(\"opbeans_orderline\".\"order_id\") AS \"order_count\", (\"opbeans_product\".\"selling_price\" - \"opbeans_product\".\"cost\") AS \"per_item_profit\", (COUNT(\"opbeans_orderline\".\"order_id\") * (\"opbeans_product\".\"selling_price\" - \"opbeans_product\".\"cost\")) AS \"total_profit\", (COUNT(\"opbeans_orderline\".\"order_id\") * \"opbeans_product\".\"selling_price\") AS \"total_revenue\", (COUNT(\"opbeans_orderline\".\"order_id\") * \"opbeans_product\".\"cost\") AS \"total_cost\" FROM \"opbeans_product\" LEFT OUTER JOIN \"opbeans_orderline\" ON (\"opbeans_product\".\"id\" = \"opbeans_orderline\".\"product_id\") GROUP BY \"opbeans_product\".\"id\", (\"opbeans_product\".\"selling_price\" - \"opbeans_product\".\"cost\")) subquery"}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}, "stacktrace": [{"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/backends/utils.py", "filename": "django/db/backends/utils.py", "module": "django.db.backends.utils", "function": "_execute_with_wrappers", "lineno": 75, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/backends/utils.py", "filename": "django/db/backends/utils.py", "module": "django.db.backends.utils", "function": "execute", "lineno": 66, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/sql/compiler.py", "filename": "django/db/models/sql/compiler.py", "module": "django.db.models.sql.compiler", "function": "execute_sql", "lineno": 1175, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/sql/query.py", "filename": "django/db/models/sql/query.py", "module": "django.db.models.sql.query", "function": "get_aggregation", "lineno": 504, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/query.py", "filename": "django/db/models/query.py", "module": "django.db.models.query", "function": "aggregate", "lineno": 399, "library_frame": true}, {"abs_path": "/app/opbeans/utils.py", "filename": "opbeans/utils.py", "module": "opbeans.utils", "function": "stats", "lineno": 9, "library_frame": false, "pre_context": ["", "def stats():"], "context_line": " numbers = m.Product.objects.annotate(", "post_context": [" order_count=models.Count('order'),", " per_item_profit=models.F('selling_price') - models.F('cost')"]}, {"abs_path": "/app/opbeans/tasks.py", "filename": "opbeans/tasks.py", "module": "opbeans.tasks", "function": "update_stats", "lineno": 22, "library_frame": false, "pre_context": [" elasticapm.label(a=\"x\", b=\"y\")", " elasticapm.set_custom_context({\"a\": \"x\", \"b\": \"y\"})"], "context_line": " cache.set(utils.stats.cache_key, utils.stats(), 60)", "post_context": ["", ""]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "__protected_call__", "lineno": 734, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "trace_task", "lineno": 451, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "fast_trace_task", "lineno": 649, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "workloop", "lineno": 362, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "__call__", "lineno": 292, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "run", "lineno": 114, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "_bootstrap", "lineno": 327, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/popen_fork.py", "filename": "billiard/popen_fork.py", "module": "billiard.popen_fork", "function": "_launch", "lineno": 79, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/popen_fork.py", "filename": "billiard/popen_fork.py", "module": "billiard.popen_fork", "function": "__init__", "lineno": 24, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/context.py", "filename": "billiard/context.py", "module": "billiard.context", "function": "_Popen", "lineno": 333, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "start", "lineno": 124, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "_create_worker_process", "lineno": 1158, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/asynpool.py", "filename": "celery/concurrency/asynpool.py", "module": "celery.concurrency.asynpool", "function": "_create_worker_process", "lineno": 480, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "__init__", "lineno": 1046, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/asynpool.py", "filename": "celery/concurrency/asynpool.py", "module": "celery.concurrency.asynpool", "function": "__init__", "lineno": 463, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/prefork.py", "filename": "celery/concurrency/prefork.py", "module": "celery.concurrency.prefork", "function": "on_start", "lineno": 109, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/base.py", "filename": "celery/concurrency/base.py", "module": "celery.concurrency.base", "function": "start", "lineno": 129, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bootsteps.py", "filename": "celery/bootsteps.py", "module": "celery.bootsteps", "function": "start", "lineno": 365, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bootsteps.py", "filename": "celery/bootsteps.py", "module": "celery.bootsteps", "function": "start", "lineno": 116, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/worker/worker.py", "filename": "celery/worker/worker.py", "module": "celery.worker.worker", "function": "start", "lineno": 203, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/worker.py", "filename": "celery/bin/worker.py", "module": "celery.bin.worker", "function": "worker", "lineno": 351, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/base.py", "filename": "celery/bin/base.py", "module": "celery.bin.base", "function": "caller", "lineno": 134, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/decorators.py", "filename": "click/decorators.py", "module": "click.decorators", "function": "new_func", "lineno": 26, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 754, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 1395, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 1659, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "main", "lineno": 1053, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "__call__", "lineno": 1128, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/celery.py", "filename": "celery/bin/celery.py", "module": "celery.bin.celery", "function": "main", "lineno": 213, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/__main__.py", "filename": "celery/__main__.py", "module": "celery.__main__", "function": "main", "lineno": 15, "library_frame": true}, {"abs_path": "/app/venv/bin/celery", "filename": "bin/celery", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(main())", "post_context": []}]}} {"span": {"id": "993af4dd8a25ef40", "transaction_id": "428498c5ef8cd15c", "trace_id": "b16eb14e432c1f78b32d0a00f68f318b", "parent_id": "428498c5ef8cd15c", "name": "SELECT FROM opbeans_product", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055482775999, "duration": 12.192666996270418, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT COUNT(*) AS \"__count\" FROM \"opbeans_product\""}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}, "stacktrace": [{"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/backends/utils.py", "filename": "django/db/backends/utils.py", "module": "django.db.backends.utils", "function": "_execute_with_wrappers", "lineno": 75, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/backends/utils.py", "filename": "django/db/backends/utils.py", "module": "django.db.backends.utils", "function": "execute", "lineno": 66, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/sql/compiler.py", "filename": "django/db/models/sql/compiler.py", "module": "django.db.models.sql.compiler", "function": "execute_sql", "lineno": 1175, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/sql/query.py", "filename": "django/db/models/sql/query.py", "module": "django.db.models.sql.query", "function": "get_aggregation", "lineno": 504, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/sql/query.py", "filename": "django/db/models/sql/query.py", "module": "django.db.models.sql.query", "function": "get_count", "lineno": 519, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/query.py", "filename": "django/db/models/query.py", "module": "django.db.models.query", "function": "count", "lineno": 412, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/manager.py", "filename": "django/db/models/manager.py", "module": "django.db.models.manager", "function": "manager_method", "lineno": 85, "library_frame": true}, {"abs_path": "/app/opbeans/utils.py", "filename": "opbeans/utils.py", "module": "opbeans.utils", "function": "stats", "lineno": 22, "library_frame": false, "pre_context": [" )", " data = {"], "context_line": " 'products': m.Product.objects.count(),", "post_context": [" 'customers': m.Customer.objects.count(),", " 'orders': m.Order.objects.count(),"]}, {"abs_path": "/app/opbeans/tasks.py", "filename": "opbeans/tasks.py", "module": "opbeans.tasks", "function": "update_stats", "lineno": 22, "library_frame": false, "pre_context": [" elasticapm.label(a=\"x\", b=\"y\")", " elasticapm.set_custom_context({\"a\": \"x\", \"b\": \"y\"})"], "context_line": " cache.set(utils.stats.cache_key, utils.stats(), 60)", "post_context": ["", ""]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "__protected_call__", "lineno": 734, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "trace_task", "lineno": 451, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "fast_trace_task", "lineno": 649, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "workloop", "lineno": 362, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "__call__", "lineno": 292, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "run", "lineno": 114, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "_bootstrap", "lineno": 327, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/popen_fork.py", "filename": "billiard/popen_fork.py", "module": "billiard.popen_fork", "function": "_launch", "lineno": 79, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/popen_fork.py", "filename": "billiard/popen_fork.py", "module": "billiard.popen_fork", "function": "__init__", "lineno": 24, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/context.py", "filename": "billiard/context.py", "module": "billiard.context", "function": "_Popen", "lineno": 333, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "start", "lineno": 124, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "_create_worker_process", "lineno": 1158, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/asynpool.py", "filename": "celery/concurrency/asynpool.py", "module": "celery.concurrency.asynpool", "function": "_create_worker_process", "lineno": 480, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "__init__", "lineno": 1046, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/asynpool.py", "filename": "celery/concurrency/asynpool.py", "module": "celery.concurrency.asynpool", "function": "__init__", "lineno": 463, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/prefork.py", "filename": "celery/concurrency/prefork.py", "module": "celery.concurrency.prefork", "function": "on_start", "lineno": 109, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/base.py", "filename": "celery/concurrency/base.py", "module": "celery.concurrency.base", "function": "start", "lineno": 129, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bootsteps.py", "filename": "celery/bootsteps.py", "module": "celery.bootsteps", "function": "start", "lineno": 365, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bootsteps.py", "filename": "celery/bootsteps.py", "module": "celery.bootsteps", "function": "start", "lineno": 116, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/worker/worker.py", "filename": "celery/worker/worker.py", "module": "celery.worker.worker", "function": "start", "lineno": 203, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/worker.py", "filename": "celery/bin/worker.py", "module": "celery.bin.worker", "function": "worker", "lineno": 351, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/base.py", "filename": "celery/bin/base.py", "module": "celery.bin.base", "function": "caller", "lineno": 134, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/decorators.py", "filename": "click/decorators.py", "module": "click.decorators", "function": "new_func", "lineno": 26, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 754, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 1395, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 1659, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "main", "lineno": 1053, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "__call__", "lineno": 1128, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/celery.py", "filename": "celery/bin/celery.py", "module": "celery.bin.celery", "function": "main", "lineno": 213, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/__main__.py", "filename": "celery/__main__.py", "module": "celery.__main__", "function": "main", "lineno": 15, "library_frame": true}, {"abs_path": "/app/venv/bin/celery", "filename": "bin/celery", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(main())", "post_context": []}]}} @@ -269,7 +251,6 @@ {"span": {"id": "5c2e474f4f117f2d", "transaction_id": "791f9e32b4874dc4", "trace_id": "4750bf0431d66d6c50c185ca1c54c09c", "parent_id": "791f9e32b4874dc4", "name": "GET", "type": "db", "subtype": "redis", "action": "query", "timestamp": 1646055487809572, "duration": 1.436582999303937, "outcome": "success", "sample_rate": 1.0, "context": {"destination": {"port": 6379, "address": "redis", "service": {"resource": "redis", "name": "", "type": ""}}}}} {"span": {"id": "566a14e2be7ca1a5", "transaction_id": "791f9e32b4874dc4", "trace_id": "4750bf0431d66d6c50c185ca1c54c09c", "parent_id": "791f9e32b4874dc4", "name": "Pipeline.execute", "type": "db", "subtype": "redis", "action": "query", "timestamp": 1646055487811915, "duration": 2.0655409898608923, "outcome": "success", "sample_rate": 1.0, "context": {"destination": {"port": 6379, "address": "redis", "service": {"resource": "redis", "name": "", "type": ""}}}}} {"transaction": {"id": "791f9e32b4874dc4", "trace_id": "4750bf0431d66d6c50c185ca1c54c09c", "name": "opbeans.tasks.update_stats", "type": "celery", "duration": 166.10274999402463, "result": "SUCCESS", "timestamp": 1646055487649695, "outcome": "success", "sampled": true, "span_count": {"started": 7, "dropped": 0}, "sample_rate": 1.0, "context": {"custom": {"a": "x", "b": "y"}, "tags": {"a": "x", "b": "y"}}}} -{"metadata": {"service": {"name": "opbeans-python", "environment": "production", "version": "None", "agent": {"name": "python", "version": "6.7.2"}, "language": {"name": "python", "version": "3.10.2"}, "runtime": {"name": "CPython", "version": "3.10.2"}, "framework": {"name": "django", "version": "3.2.11"}}, "process": {"pid": 121, "ppid": 109, "argv": ["/app/venv/bin/gunicorn", "--workers", "4", "--bind", "0.0.0.0:3000", "opbeans.wsgi"], "title": null}, "system": {"hostname": "88abe6e3ded4", "architecture": "x86_64", "platform": "linux"}}} {"span": {"id": "f3af3305ee9ca353", "transaction_id": "4dac164f99e0583e", "trace_id": "bea1f2882a5197be0f29c994d16c13af", "parent_id": "4dac164f99e0583e", "name": "SELECT FROM opbeans_order", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055486592191, "duration": 9.485290996963158, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT \"opbeans_order\".\"id\", \"opbeans_order\".\"customer_id\", \"opbeans_order\".\"created_at\" FROM \"opbeans_order\" LIMIT 1000"}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}, "stacktrace": [{"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/backends/utils.py", "filename": "django/db/backends/utils.py", "module": "django.db.backends.utils", "function": "_execute_with_wrappers", "lineno": 75, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/backends/utils.py", "filename": "django/db/backends/utils.py", "module": "django.db.backends.utils", "function": "execute", "lineno": 66, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/sql/compiler.py", "filename": "django/db/models/sql/compiler.py", "module": "django.db.models.sql.compiler", "function": "execute_sql", "lineno": 1175, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/query.py", "filename": "django/db/models/query.py", "module": "django.db.models.query", "function": "__iter__", "lineno": 51, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/query.py", "filename": "django/db/models/query.py", "module": "django.db.models.query", "function": "_fetch_all", "lineno": 1324, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/query.py", "filename": "django/db/models/query.py", "module": "django.db.models.query", "function": "__len__", "lineno": 262, "library_frame": true}, {"abs_path": "/app/opbeans/views.py", "filename": "opbeans/views.py", "module": "opbeans.views", "function": "orders", "lineno": 199, "library_frame": false, "pre_context": [" elasticapm.set_transaction_name('POST opbeans.views.post_order')", " return post_order(request)"], "context_line": " order_list = list(m.Order.objects.all()[:1000])", "post_context": [" with elasticapm.capture_span(\"iterate_orders\"):", " orders = ["]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/views/decorators/csrf.py", "filename": "django/views/decorators/csrf.py", "module": "django.views.decorators.csrf", "function": "wrapped_view", "lineno": 54, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "_get_response", "lineno": 181, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/whitenoise/middleware.py", "filename": "whitenoise/middleware.py", "module": "whitenoise.middleware", "function": "__call__", "lineno": 60, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "get_response", "lineno": 130, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/wsgi.py", "filename": "django/core/handlers/wsgi.py", "module": "django.core.handlers.wsgi", "function": "__call__", "lineno": 133, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle_request", "lineno": 179, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle", "lineno": 136, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "accept", "lineno": 31, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run_for_one", "lineno": 69, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run", "lineno": 125, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/base.py", "filename": "gunicorn/workers/base.py", "module": "gunicorn.workers.base", "function": "init_process", "lineno": 142, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_worker", "lineno": 589, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_workers", "lineno": 622, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "manage_workers", "lineno": 551, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "run", "lineno": 202, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 72, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 231, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/wsgiapp.py", "filename": "gunicorn/app/wsgiapp.py", "module": "gunicorn.app.wsgiapp", "function": "run", "lineno": 67, "library_frame": true}, {"abs_path": "/app/venv/bin/gunicorn", "filename": "bin/gunicorn", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(run())", "post_context": []}]}} {"span": {"id": "4a4a48c8565bf856", "transaction_id": "4dac164f99e0583e", "trace_id": "bea1f2882a5197be0f29c994d16c13af", "parent_id": "a951684d72c2f7e3", "name": "SELECT FROM opbeans_customer", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055486751891, "duration": 2.691791014513001, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT \"opbeans_customer\".\"id\", \"opbeans_customer\".\"full_name\", \"opbeans_customer\".\"company_name\", \"opbeans_customer\".\"email\", \"opbeans_customer\".\"address\", \"opbeans_customer\".\"postal_code\", \"opbeans_customer\".\"city\", \"opbeans_customer\".\"country\" FROM \"opbeans_customer\" WHERE \"opbeans_customer\".\"id\" = %s LIMIT 21"}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}}} {"span": {"id": "3a1b4c333e45ec98", "transaction_id": "4dac164f99e0583e", "trace_id": "bea1f2882a5197be0f29c994d16c13af", "parent_id": "a951684d72c2f7e3", "name": "SELECT FROM opbeans_customer", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055486759001, "duration": 1.998082996578887, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT \"opbeans_customer\".\"id\", \"opbeans_customer\".\"full_name\", \"opbeans_customer\".\"company_name\", \"opbeans_customer\".\"email\", \"opbeans_customer\".\"address\", \"opbeans_customer\".\"postal_code\", \"opbeans_customer\".\"city\", \"opbeans_customer\".\"country\" FROM \"opbeans_customer\" WHERE \"opbeans_customer\".\"id\" = %s LIMIT 21"}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}}} @@ -321,11 +302,9 @@ {"span": {"id": "01cd2e19eb40e2a0", "transaction_id": "4dac164f99e0583e", "trace_id": "bea1f2882a5197be0f29c994d16c13af", "parent_id": "a951684d72c2f7e3", "name": "SELECT FROM opbeans_customer", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055487162191, "duration": 1.7535420192871243, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT \"opbeans_customer\".\"id\", \"opbeans_customer\".\"full_name\", \"opbeans_customer\".\"company_name\", \"opbeans_customer\".\"email\", \"opbeans_customer\".\"address\", \"opbeans_customer\".\"postal_code\", \"opbeans_customer\".\"city\", \"opbeans_customer\".\"country\" FROM \"opbeans_customer\" WHERE \"opbeans_customer\".\"id\" = %s LIMIT 21"}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}}} {"span": {"id": "a951684d72c2f7e3", "transaction_id": "4dac164f99e0583e", "trace_id": "bea1f2882a5197be0f29c994d16c13af", "parent_id": "4dac164f99e0583e", "name": "iterate_orders", "type": "code", "subtype": "custom", "action": null, "timestamp": 1646055486742873, "duration": 6426.213419006672, "outcome": "success", "sample_rate": 1.0, "stacktrace": [{"abs_path": "/app/opbeans/views.py", "filename": "opbeans/views.py", "module": "opbeans.views", "function": "orders", "lineno": 200, "library_frame": false, "pre_context": [" return post_order(request)", " order_list = list(m.Order.objects.all()[:1000])"], "context_line": " with elasticapm.capture_span(\"iterate_orders\"):", "post_context": [" orders = [", " {\"id\": order.id,"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/views/decorators/csrf.py", "filename": "django/views/decorators/csrf.py", "module": "django.views.decorators.csrf", "function": "wrapped_view", "lineno": 54, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "_get_response", "lineno": 181, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/whitenoise/middleware.py", "filename": "whitenoise/middleware.py", "module": "whitenoise.middleware", "function": "__call__", "lineno": 60, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "get_response", "lineno": 130, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/wsgi.py", "filename": "django/core/handlers/wsgi.py", "module": "django.core.handlers.wsgi", "function": "__call__", "lineno": 133, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle_request", "lineno": 179, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle", "lineno": 136, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "accept", "lineno": 31, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run_for_one", "lineno": 69, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run", "lineno": 125, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/base.py", "filename": "gunicorn/workers/base.py", "module": "gunicorn.workers.base", "function": "init_process", "lineno": 142, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_worker", "lineno": 589, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_workers", "lineno": 622, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "manage_workers", "lineno": 551, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "run", "lineno": 202, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 72, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 231, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/wsgiapp.py", "filename": "gunicorn/app/wsgiapp.py", "module": "gunicorn.app.wsgiapp", "function": "run", "lineno": 67, "library_frame": true}, {"abs_path": "/app/venv/bin/gunicorn", "filename": "bin/gunicorn", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(run())", "post_context": []}]}} {"transaction": {"id": "4dac164f99e0583e", "trace_id": "bea1f2882a5197be0f29c994d16c13af", "name": "GET opbeans.views.orders", "type": "request", "duration": 6684.248711011605, "result": "HTTP 2xx", "timestamp": 1646055486565476, "outcome": "success", "sampled": true, "span_count": {"started": 50, "dropped": 952}, "dropped_spans_stats": [{"destination_service_resource": "postgresql", "outcome": "success", "duration": {"count": 952, "sum": {"us": 1194565}}}], "sample_rate": 1.0, "parent_id": "ce3c003903ed4693", "context": {"request": {"env": {"REMOTE_ADDR": "172.23.0.9", "SERVER_NAME": "0.0.0.0", "SERVER_PORT": "3000"}, "method": "GET", "socket": {"remote_address": "172.23.0.9"}, "cookies": {}, "headers": {"host": "localhost:3000", "user-agent": "Go-http-client/1.1", "accept-encoding": "gzip", "elastic-apm-traceparent": "00-bea1f2882a5197be0f29c994d16c13af-ce3c003903ed4693-01", "traceparent": "00-bea1f2882a5197be0f29c994d16c13af-ce3c003903ed4693-01", "tracestate": "es=s:1", "x-forwarded-for": "127.0.0.1"}, "url": {"full": "http://localhost:3000/api/orders", "protocol": "http:", "hostname": "localhost", "pathname": "/api/orders", "port": "3000"}}, "response": {"status_code": 200, "headers": {"Content-Type": "application/json", "X-Frame-Options": "DENY", "Content-Length": "108580", "Vary": "Cookie", "X-Content-Type-Options": "nosniff", "Referrer-Policy": "same-origin"}}, "user": {"is_authenticated": true, "id": 11, "username": "crystal68", "email": "crystal68@gonzales-horn.info"}, "tags": {"request_id": "cb0ad289-bde1-4eaf-90fd-238a82ccfc3a", "customer_tier": "$$"}}}} -{"metadata": {"service": {"name": "opbeans-python", "environment": "production", "version": "None", "agent": {"name": "python", "version": "6.7.2"}, "language": {"name": "python", "version": "3.10.2"}, "runtime": {"name": "CPython", "version": "3.10.2"}, "framework": {"name": "django", "version": "3.2.11"}}, "process": {"pid": 123, "ppid": 109, "argv": ["/app/venv/bin/gunicorn", "--workers", "4", "--bind", "0.0.0.0:3000", "opbeans.wsgi"], "title": null}, "system": {"hostname": "88abe6e3ded4", "architecture": "x86_64", "platform": "linux"}}} {"span": {"id": "5a2a7e1d394fd2f2", "transaction_id": "cdc7a5f38a03ff9c", "trace_id": "df01941ba631c16da1c66cc7c7183ecb", "parent_id": "cdc7a5f38a03ff9c", "name": "hard-home-work", "type": "code", "subtype": "custom", "action": null, "timestamp": 1646055491354231, "duration": 352.7575829939451, "outcome": "success", "sample_rate": 1.0, "stacktrace": [{"abs_path": "/app/opbeans/views.py", "filename": "opbeans/views.py", "module": "opbeans.views", "function": "home", "lineno": 308, "library_frame": false, "pre_context": ["", "def home(request):"], "context_line": " with elasticapm.capture_span(\"hard-home-work\"):", "post_context": [" time.sleep(random.random() / 2.0)", " return render(request, \"index.html\")"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "_get_response", "lineno": 181, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/whitenoise/middleware.py", "filename": "whitenoise/middleware.py", "module": "whitenoise.middleware", "function": "__call__", "lineno": 60, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "get_response", "lineno": 130, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/wsgi.py", "filename": "django/core/handlers/wsgi.py", "module": "django.core.handlers.wsgi", "function": "__call__", "lineno": 133, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle_request", "lineno": 179, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle", "lineno": 136, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "accept", "lineno": 31, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run_for_one", "lineno": 69, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run", "lineno": 125, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/base.py", "filename": "gunicorn/workers/base.py", "module": "gunicorn.workers.base", "function": "init_process", "lineno": 142, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_worker", "lineno": 589, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_workers", "lineno": 622, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "manage_workers", "lineno": 551, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "run", "lineno": 202, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 72, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 231, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/wsgiapp.py", "filename": "gunicorn/app/wsgiapp.py", "module": "gunicorn.app.wsgiapp", "function": "run", "lineno": 67, "library_frame": true}, {"abs_path": "/app/venv/bin/gunicorn", "filename": "bin/gunicorn", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(run())", "post_context": []}]}} {"span": {"id": "2f0dfa75b48a0bbc", "transaction_id": "cdc7a5f38a03ff9c", "trace_id": "df01941ba631c16da1c66cc7c7183ecb", "parent_id": "cdc7a5f38a03ff9c", "name": "index.html", "type": "template", "subtype": "django", "action": "render", "timestamp": 1646055491711446, "duration": 14.124957990134135, "outcome": "success", "sample_rate": 1.0, "stacktrace": [{"abs_path": "/app/venv/lib/python3.10/site-packages/django/template/backends/django.py", "filename": "django/template/backends/django.py", "module": "django.template.backends.django", "function": "render", "lineno": 61, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/template/loader.py", "filename": "django/template/loader.py", "module": "django.template.loader", "function": "render_to_string", "lineno": 62, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/shortcuts.py", "filename": "django/shortcuts.py", "module": "django.shortcuts", "function": "render", "lineno": 19, "library_frame": true}, {"abs_path": "/app/opbeans/views.py", "filename": "opbeans/views.py", "module": "opbeans.views", "function": "home", "lineno": 310, "library_frame": false, "pre_context": [" with elasticapm.capture_span(\"hard-home-work\"):", " time.sleep(random.random() / 2.0)"], "context_line": " return render(request, \"index.html\")", "post_context": ["", ""]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "_get_response", "lineno": 181, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/whitenoise/middleware.py", "filename": "whitenoise/middleware.py", "module": "whitenoise.middleware", "function": "__call__", "lineno": 60, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "get_response", "lineno": 130, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/wsgi.py", "filename": "django/core/handlers/wsgi.py", "module": "django.core.handlers.wsgi", "function": "__call__", "lineno": 133, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle_request", "lineno": 179, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle", "lineno": 136, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "accept", "lineno": 31, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run_for_one", "lineno": 69, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run", "lineno": 125, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/base.py", "filename": "gunicorn/workers/base.py", "module": "gunicorn.workers.base", "function": "init_process", "lineno": 142, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_worker", "lineno": 589, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_workers", "lineno": 622, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "manage_workers", "lineno": 551, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "run", "lineno": 202, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 72, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 231, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/wsgiapp.py", "filename": "gunicorn/app/wsgiapp.py", "module": "gunicorn.app.wsgiapp", "function": "run", "lineno": 67, "library_frame": true}, {"abs_path": "/app/venv/bin/gunicorn", "filename": "bin/gunicorn", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(run())", "post_context": []}]}} {"transaction": {"id": "cdc7a5f38a03ff9c", "trace_id": "df01941ba631c16da1c66cc7c7183ecb", "name": "GET opbeans.views.home", "type": "request", "duration": 402.87045898730867, "result": "HTTP 2xx", "timestamp": 1646055491342928, "outcome": "success", "sampled": true, "span_count": {"started": 2, "dropped": 0}, "sample_rate": 1.0, "parent_id": "1eae96926808f4db", "context": {"request": {"env": {"REMOTE_ADDR": "172.23.0.11", "SERVER_NAME": "0.0.0.0", "SERVER_PORT": "3000"}, "method": "GET", "socket": {"remote_address": "172.23.0.11"}, "cookies": {}, "headers": {"host": "opbeans-python:3000", "user-agent": "curl/7.74.0", "accept": "*/*"}, "url": {"full": "http://opbeans-python:3000/", "protocol": "http:", "hostname": "opbeans-python", "pathname": "/", "port": "3000"}}, "response": {"status_code": 200, "headers": {"Content-Type": "text/html; charset=utf-8", "X-Frame-Options": "DENY", "Content-Length": "871", "Vary": "Cookie", "X-Content-Type-Options": "nosniff", "Referrer-Policy": "same-origin"}}, "user": {"is_authenticated": true, "id": 11, "username": "crystal68", "email": "crystal68@gonzales-horn.info"}, "tags": {"request_id": "d6248c7f-263a-4ff2-b256-5b415a30fe77", "customer_tier": "$$"}}}} -{"metadata": {"service": {"name": "opbeans-python", "environment": "production", "version": "None", "agent": {"name": "python", "version": "6.7.2"}, "language": {"name": "python", "version": "3.10.2"}, "runtime": {"name": "CPython", "version": "3.10.2"}, "framework": {"name": "django", "version": "3.2.11"}}, "process": {"pid": 156, "ppid": 113, "argv": ["/app/venv/bin/celery", "-A", "opbeans", "worker", "--concurrency=1", "-l", "info"], "title": null}, "system": {"hostname": "88abe6e3ded4", "architecture": "x86_64", "platform": "linux"}}} {"span": {"id": "8946d928d370af76", "transaction_id": "421c789672dc2a6e", "trace_id": "3d53e466f2cbb774c257dae81a39e045", "parent_id": "421c789672dc2a6e", "name": "SELECT FROM opbeans_product", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055492614479, "duration": 23.631750023923814, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT SUM(\"total_revenue\"), SUM(\"total_cost\"), SUM(\"total_profit\") FROM (SELECT COUNT(\"opbeans_orderline\".\"order_id\") AS \"order_count\", (\"opbeans_product\".\"selling_price\" - \"opbeans_product\".\"cost\") AS \"per_item_profit\", (COUNT(\"opbeans_orderline\".\"order_id\") * (\"opbeans_product\".\"selling_price\" - \"opbeans_product\".\"cost\")) AS \"total_profit\", (COUNT(\"opbeans_orderline\".\"order_id\") * \"opbeans_product\".\"selling_price\") AS \"total_revenue\", (COUNT(\"opbeans_orderline\".\"order_id\") * \"opbeans_product\".\"cost\") AS \"total_cost\" FROM \"opbeans_product\" LEFT OUTER JOIN \"opbeans_orderline\" ON (\"opbeans_product\".\"id\" = \"opbeans_orderline\".\"product_id\") GROUP BY \"opbeans_product\".\"id\", (\"opbeans_product\".\"selling_price\" - \"opbeans_product\".\"cost\")) subquery"}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}, "stacktrace": [{"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/backends/utils.py", "filename": "django/db/backends/utils.py", "module": "django.db.backends.utils", "function": "_execute_with_wrappers", "lineno": 75, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/backends/utils.py", "filename": "django/db/backends/utils.py", "module": "django.db.backends.utils", "function": "execute", "lineno": 66, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/sql/compiler.py", "filename": "django/db/models/sql/compiler.py", "module": "django.db.models.sql.compiler", "function": "execute_sql", "lineno": 1175, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/sql/query.py", "filename": "django/db/models/sql/query.py", "module": "django.db.models.sql.query", "function": "get_aggregation", "lineno": 504, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/query.py", "filename": "django/db/models/query.py", "module": "django.db.models.query", "function": "aggregate", "lineno": 399, "library_frame": true}, {"abs_path": "/app/opbeans/utils.py", "filename": "opbeans/utils.py", "module": "opbeans.utils", "function": "stats", "lineno": 9, "library_frame": false, "pre_context": ["", "def stats():"], "context_line": " numbers = m.Product.objects.annotate(", "post_context": [" order_count=models.Count('order'),", " per_item_profit=models.F('selling_price') - models.F('cost')"]}, {"abs_path": "/app/opbeans/tasks.py", "filename": "opbeans/tasks.py", "module": "opbeans.tasks", "function": "update_stats", "lineno": 22, "library_frame": false, "pre_context": [" elasticapm.label(a=\"x\", b=\"y\")", " elasticapm.set_custom_context({\"a\": \"x\", \"b\": \"y\"})"], "context_line": " cache.set(utils.stats.cache_key, utils.stats(), 60)", "post_context": ["", ""]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "__protected_call__", "lineno": 734, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "trace_task", "lineno": 451, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "fast_trace_task", "lineno": 649, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "workloop", "lineno": 362, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "__call__", "lineno": 292, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "run", "lineno": 114, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "_bootstrap", "lineno": 327, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/popen_fork.py", "filename": "billiard/popen_fork.py", "module": "billiard.popen_fork", "function": "_launch", "lineno": 79, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/popen_fork.py", "filename": "billiard/popen_fork.py", "module": "billiard.popen_fork", "function": "__init__", "lineno": 24, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/context.py", "filename": "billiard/context.py", "module": "billiard.context", "function": "_Popen", "lineno": 333, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "start", "lineno": 124, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "_create_worker_process", "lineno": 1158, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/asynpool.py", "filename": "celery/concurrency/asynpool.py", "module": "celery.concurrency.asynpool", "function": "_create_worker_process", "lineno": 480, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "__init__", "lineno": 1046, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/asynpool.py", "filename": "celery/concurrency/asynpool.py", "module": "celery.concurrency.asynpool", "function": "__init__", "lineno": 463, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/prefork.py", "filename": "celery/concurrency/prefork.py", "module": "celery.concurrency.prefork", "function": "on_start", "lineno": 109, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/base.py", "filename": "celery/concurrency/base.py", "module": "celery.concurrency.base", "function": "start", "lineno": 129, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bootsteps.py", "filename": "celery/bootsteps.py", "module": "celery.bootsteps", "function": "start", "lineno": 365, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bootsteps.py", "filename": "celery/bootsteps.py", "module": "celery.bootsteps", "function": "start", "lineno": 116, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/worker/worker.py", "filename": "celery/worker/worker.py", "module": "celery.worker.worker", "function": "start", "lineno": 203, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/worker.py", "filename": "celery/bin/worker.py", "module": "celery.bin.worker", "function": "worker", "lineno": 351, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/base.py", "filename": "celery/bin/base.py", "module": "celery.bin.base", "function": "caller", "lineno": 134, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/decorators.py", "filename": "click/decorators.py", "module": "click.decorators", "function": "new_func", "lineno": 26, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 754, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 1395, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 1659, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "main", "lineno": 1053, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "__call__", "lineno": 1128, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/celery.py", "filename": "celery/bin/celery.py", "module": "celery.bin.celery", "function": "main", "lineno": 213, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/__main__.py", "filename": "celery/__main__.py", "module": "celery.__main__", "function": "main", "lineno": 15, "library_frame": true}, {"abs_path": "/app/venv/bin/celery", "filename": "bin/celery", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(main())", "post_context": []}]}} {"span": {"id": "6e21ebc5cad5f9a0", "transaction_id": "421c789672dc2a6e", "trace_id": "3d53e466f2cbb774c257dae81a39e045", "parent_id": "421c789672dc2a6e", "name": "SELECT FROM opbeans_product", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055492660820, "duration": 3.351124993059784, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT COUNT(*) AS \"__count\" FROM \"opbeans_product\""}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}}} {"span": {"id": "c346f0147a9b00c4", "transaction_id": "421c789672dc2a6e", "trace_id": "3d53e466f2cbb774c257dae81a39e045", "parent_id": "421c789672dc2a6e", "name": "SELECT FROM opbeans_customer", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055492669381, "duration": 7.7448329830076545, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT COUNT(*) AS \"__count\" FROM \"opbeans_customer\""}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}, "stacktrace": [{"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/backends/utils.py", "filename": "django/db/backends/utils.py", "module": "django.db.backends.utils", "function": "_execute_with_wrappers", "lineno": 75, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/backends/utils.py", "filename": "django/db/backends/utils.py", "module": "django.db.backends.utils", "function": "execute", "lineno": 66, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/sql/compiler.py", "filename": "django/db/models/sql/compiler.py", "module": "django.db.models.sql.compiler", "function": "execute_sql", "lineno": 1175, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/sql/query.py", "filename": "django/db/models/sql/query.py", "module": "django.db.models.sql.query", "function": "get_aggregation", "lineno": 504, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/sql/query.py", "filename": "django/db/models/sql/query.py", "module": "django.db.models.sql.query", "function": "get_count", "lineno": 519, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/query.py", "filename": "django/db/models/query.py", "module": "django.db.models.query", "function": "count", "lineno": 412, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/manager.py", "filename": "django/db/models/manager.py", "module": "django.db.models.manager", "function": "manager_method", "lineno": 85, "library_frame": true}, {"abs_path": "/app/opbeans/utils.py", "filename": "opbeans/utils.py", "module": "opbeans.utils", "function": "stats", "lineno": 23, "library_frame": false, "pre_context": [" data = {", " 'products': m.Product.objects.count(),"], "context_line": " 'customers': m.Customer.objects.count(),", "post_context": [" 'orders': m.Order.objects.count(),", " 'numbers': numbers"]}, {"abs_path": "/app/opbeans/tasks.py", "filename": "opbeans/tasks.py", "module": "opbeans.tasks", "function": "update_stats", "lineno": 22, "library_frame": false, "pre_context": [" elasticapm.label(a=\"x\", b=\"y\")", " elasticapm.set_custom_context({\"a\": \"x\", \"b\": \"y\"})"], "context_line": " cache.set(utils.stats.cache_key, utils.stats(), 60)", "post_context": ["", ""]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "__protected_call__", "lineno": 734, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "trace_task", "lineno": 451, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "fast_trace_task", "lineno": 649, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "workloop", "lineno": 362, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "__call__", "lineno": 292, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "run", "lineno": 114, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "_bootstrap", "lineno": 327, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/popen_fork.py", "filename": "billiard/popen_fork.py", "module": "billiard.popen_fork", "function": "_launch", "lineno": 79, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/popen_fork.py", "filename": "billiard/popen_fork.py", "module": "billiard.popen_fork", "function": "__init__", "lineno": 24, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/context.py", "filename": "billiard/context.py", "module": "billiard.context", "function": "_Popen", "lineno": 333, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "start", "lineno": 124, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "_create_worker_process", "lineno": 1158, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/asynpool.py", "filename": "celery/concurrency/asynpool.py", "module": "celery.concurrency.asynpool", "function": "_create_worker_process", "lineno": 480, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "__init__", "lineno": 1046, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/asynpool.py", "filename": "celery/concurrency/asynpool.py", "module": "celery.concurrency.asynpool", "function": "__init__", "lineno": 463, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/prefork.py", "filename": "celery/concurrency/prefork.py", "module": "celery.concurrency.prefork", "function": "on_start", "lineno": 109, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/base.py", "filename": "celery/concurrency/base.py", "module": "celery.concurrency.base", "function": "start", "lineno": 129, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bootsteps.py", "filename": "celery/bootsteps.py", "module": "celery.bootsteps", "function": "start", "lineno": 365, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bootsteps.py", "filename": "celery/bootsteps.py", "module": "celery.bootsteps", "function": "start", "lineno": 116, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/worker/worker.py", "filename": "celery/worker/worker.py", "module": "celery.worker.worker", "function": "start", "lineno": 203, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/worker.py", "filename": "celery/bin/worker.py", "module": "celery.bin.worker", "function": "worker", "lineno": 351, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/base.py", "filename": "celery/bin/base.py", "module": "celery.bin.base", "function": "caller", "lineno": 134, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/decorators.py", "filename": "click/decorators.py", "module": "click.decorators", "function": "new_func", "lineno": 26, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 754, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 1395, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 1659, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "main", "lineno": 1053, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "__call__", "lineno": 1128, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/celery.py", "filename": "celery/bin/celery.py", "module": "celery.bin.celery", "function": "main", "lineno": 213, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/__main__.py", "filename": "celery/__main__.py", "module": "celery.__main__", "function": "main", "lineno": 15, "library_frame": true}, {"abs_path": "/app/venv/bin/celery", "filename": "bin/celery", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(main())", "post_context": []}]}} @@ -346,11 +325,9 @@ {"span": {"id": "b0c41cf4d2dc869e", "transaction_id": "91e95a8b708c828b", "trace_id": "e9e0a6397a02e86f4748327405fd5f9c", "parent_id": "91e95a8b708c828b", "name": "ES POST /_bulk", "type": "db", "subtype": "elasticsearch", "action": "query", "timestamp": 1646055501791429, "duration": 41.58645900315605, "outcome": "failure", "sample_rate": 1.0, "context": {"db": {"type": "elasticsearch"}, "destination": {"address": "http://elasticsearch:9200", "service": {"resource": "elasticsearch", "name": "", "type": ""}}}, "stacktrace": [{"abs_path": "/app/venv/lib/python3.10/site-packages/elasticsearch/helpers/actions.py", "filename": "elasticsearch/helpers/actions.py", "module": "elasticsearch.helpers.actions", "function": "_process_bulk_chunk", "lineno": 240, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/elasticsearch/helpers/actions.py", "filename": "elasticsearch/helpers/actions.py", "module": "elasticsearch.helpers.actions", "function": "streaming_bulk", "lineno": 329, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/elasticsearch/helpers/actions.py", "filename": "elasticsearch/helpers/actions.py", "module": "elasticsearch.helpers.actions", "function": "bulk", "lineno": 410, "library_frame": true}, {"abs_path": "/app/opbeans/tasks.py", "filename": "opbeans/tasks.py", "module": "opbeans.tasks", "function": "sync_customers", "lineno": 30, "library_frame": false, "pre_context": [" for customer in models.Customer.objects.annotate(total_orders=m.Count('orders')).order_by('pk')[50:]:", " customer_docs.append(documents.Customer(**customer.to_search()).to_dict(include_meta=True))"], "context_line": " bulk(connections.get_connection(), customer_docs)", "post_context": ["", ""]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "__protected_call__", "lineno": 734, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "trace_task", "lineno": 451, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "fast_trace_task", "lineno": 649, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "workloop", "lineno": 362, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "__call__", "lineno": 292, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "run", "lineno": 114, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "_bootstrap", "lineno": 327, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/popen_fork.py", "filename": "billiard/popen_fork.py", "module": "billiard.popen_fork", "function": "_launch", "lineno": 79, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/popen_fork.py", "filename": "billiard/popen_fork.py", "module": "billiard.popen_fork", "function": "__init__", "lineno": 24, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/context.py", "filename": "billiard/context.py", "module": "billiard.context", "function": "_Popen", "lineno": 333, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "start", "lineno": 124, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "_create_worker_process", "lineno": 1158, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/asynpool.py", "filename": "celery/concurrency/asynpool.py", "module": "celery.concurrency.asynpool", "function": "_create_worker_process", "lineno": 480, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "__init__", "lineno": 1046, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/asynpool.py", "filename": "celery/concurrency/asynpool.py", "module": "celery.concurrency.asynpool", "function": "__init__", "lineno": 463, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/prefork.py", "filename": "celery/concurrency/prefork.py", "module": "celery.concurrency.prefork", "function": "on_start", "lineno": 109, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/base.py", "filename": "celery/concurrency/base.py", "module": "celery.concurrency.base", "function": "start", "lineno": 129, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bootsteps.py", "filename": "celery/bootsteps.py", "module": "celery.bootsteps", "function": "start", "lineno": 365, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bootsteps.py", "filename": "celery/bootsteps.py", "module": "celery.bootsteps", "function": "start", "lineno": 116, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/worker/worker.py", "filename": "celery/worker/worker.py", "module": "celery.worker.worker", "function": "start", "lineno": 203, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/worker.py", "filename": "celery/bin/worker.py", "module": "celery.bin.worker", "function": "worker", "lineno": 351, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/base.py", "filename": "celery/bin/base.py", "module": "celery.bin.base", "function": "caller", "lineno": 134, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/decorators.py", "filename": "click/decorators.py", "module": "click.decorators", "function": "new_func", "lineno": 26, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 754, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 1395, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 1659, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "main", "lineno": 1053, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "__call__", "lineno": 1128, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/celery.py", "filename": "celery/bin/celery.py", "module": "celery.bin.celery", "function": "main", "lineno": 213, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/__main__.py", "filename": "celery/__main__.py", "module": "celery.__main__", "function": "main", "lineno": 15, "library_frame": true}, {"abs_path": "/app/venv/bin/celery", "filename": "bin/celery", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(main())", "post_context": []}]}} {"span": {"id": "cacd58ff19664f47", "transaction_id": "91e95a8b708c828b", "trace_id": "e9e0a6397a02e86f4748327405fd5f9c", "parent_id": "91e95a8b708c828b", "name": "GET", "type": "db", "subtype": "redis", "action": "query", "timestamp": 1646055501858067, "duration": 1.5442919975612313, "outcome": "success", "sample_rate": 1.0, "context": {"destination": {"port": 6379, "address": "redis", "service": {"resource": "redis", "name": "", "type": ""}}}}} {"span": {"id": "763e97f8c448f3f4", "transaction_id": "91e95a8b708c828b", "trace_id": "e9e0a6397a02e86f4748327405fd5f9c", "parent_id": "91e95a8b708c828b", "name": "Pipeline.execute", "type": "db", "subtype": "redis", "action": "query", "timestamp": 1646055501860760, "duration": 3.2162909919861704, "outcome": "success", "sample_rate": 1.0, "context": {"destination": {"port": 6379, "address": "redis", "service": {"resource": "redis", "name": "", "type": ""}}}}} -{"metadata": {"service": {"name": "opbeans-python", "environment": "production", "version": "None", "agent": {"name": "python", "version": "6.7.2"}, "language": {"name": "python", "version": "3.10.2"}, "runtime": {"name": "CPython", "version": "3.10.2"}, "framework": {"name": "django", "version": "3.2.11"}}, "process": {"pid": 121, "ppid": 109, "argv": ["/app/venv/bin/gunicorn", "--workers", "4", "--bind", "0.0.0.0:3000", "opbeans.wsgi"], "title": null}, "system": {"hostname": "88abe6e3ded4", "architecture": "x86_64", "platform": "linux"}}} {"span": {"id": "29f5f97145721d44", "transaction_id": "415e6ce7f4096365", "trace_id": "1ca42860c74fd8eecc3dfd74b26b63fb", "parent_id": "415e6ce7f4096365", "name": "hard-home-work", "type": "code", "subtype": "custom", "action": null, "timestamp": 1646055501958020, "duration": 499.5835419977084, "outcome": "success", "sample_rate": 1.0, "stacktrace": [{"abs_path": "/app/opbeans/views.py", "filename": "opbeans/views.py", "module": "opbeans.views", "function": "home", "lineno": 308, "library_frame": false, "pre_context": ["", "def home(request):"], "context_line": " with elasticapm.capture_span(\"hard-home-work\"):", "post_context": [" time.sleep(random.random() / 2.0)", " return render(request, \"index.html\")"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "_get_response", "lineno": 181, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/whitenoise/middleware.py", "filename": "whitenoise/middleware.py", "module": "whitenoise.middleware", "function": "__call__", "lineno": 60, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "get_response", "lineno": 130, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/wsgi.py", "filename": "django/core/handlers/wsgi.py", "module": "django.core.handlers.wsgi", "function": "__call__", "lineno": 133, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle_request", "lineno": 179, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle", "lineno": 136, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "accept", "lineno": 31, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run_for_one", "lineno": 69, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run", "lineno": 125, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/base.py", "filename": "gunicorn/workers/base.py", "module": "gunicorn.workers.base", "function": "init_process", "lineno": 142, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_worker", "lineno": 589, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_workers", "lineno": 622, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "manage_workers", "lineno": 551, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "run", "lineno": 202, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 72, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 231, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/wsgiapp.py", "filename": "gunicorn/app/wsgiapp.py", "module": "gunicorn.app.wsgiapp", "function": "run", "lineno": 67, "library_frame": true}, {"abs_path": "/app/venv/bin/gunicorn", "filename": "bin/gunicorn", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(run())", "post_context": []}]}} {"span": {"id": "af01a1b07ba4023e", "transaction_id": "415e6ce7f4096365", "trace_id": "1ca42860c74fd8eecc3dfd74b26b63fb", "parent_id": "415e6ce7f4096365", "name": "index.html", "type": "template", "subtype": "django", "action": "render", "timestamp": 1646055502460911, "duration": 14.269208011683077, "outcome": "success", "sample_rate": 1.0, "stacktrace": [{"abs_path": "/app/venv/lib/python3.10/site-packages/django/template/backends/django.py", "filename": "django/template/backends/django.py", "module": "django.template.backends.django", "function": "render", "lineno": 61, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/template/loader.py", "filename": "django/template/loader.py", "module": "django.template.loader", "function": "render_to_string", "lineno": 62, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/shortcuts.py", "filename": "django/shortcuts.py", "module": "django.shortcuts", "function": "render", "lineno": 19, "library_frame": true}, {"abs_path": "/app/opbeans/views.py", "filename": "opbeans/views.py", "module": "opbeans.views", "function": "home", "lineno": 310, "library_frame": false, "pre_context": [" with elasticapm.capture_span(\"hard-home-work\"):", " time.sleep(random.random() / 2.0)"], "context_line": " return render(request, \"index.html\")", "post_context": ["", ""]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "_get_response", "lineno": 181, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/whitenoise/middleware.py", "filename": "whitenoise/middleware.py", "module": "whitenoise.middleware", "function": "__call__", "lineno": 60, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "get_response", "lineno": 130, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/wsgi.py", "filename": "django/core/handlers/wsgi.py", "module": "django.core.handlers.wsgi", "function": "__call__", "lineno": 133, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle_request", "lineno": 179, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle", "lineno": 136, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "accept", "lineno": 31, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run_for_one", "lineno": 69, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run", "lineno": 125, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/base.py", "filename": "gunicorn/workers/base.py", "module": "gunicorn.workers.base", "function": "init_process", "lineno": 142, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_worker", "lineno": 589, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_workers", "lineno": 622, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "manage_workers", "lineno": 551, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "run", "lineno": 202, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 72, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 231, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/wsgiapp.py", "filename": "gunicorn/app/wsgiapp.py", "module": "gunicorn.app.wsgiapp", "function": "run", "lineno": 67, "library_frame": true}, {"abs_path": "/app/venv/bin/gunicorn", "filename": "bin/gunicorn", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(run())", "post_context": []}]}} {"transaction": {"id": "415e6ce7f4096365", "trace_id": "1ca42860c74fd8eecc3dfd74b26b63fb", "name": "GET opbeans.views.home", "type": "request", "duration": 538.1338339939248, "result": "HTTP 2xx", "timestamp": 1646055501947208, "outcome": "success", "sampled": true, "span_count": {"started": 2, "dropped": 0}, "sample_rate": 1.0, "parent_id": "d41806d818f3ac15", "context": {"request": {"env": {"REMOTE_ADDR": "172.23.0.11", "SERVER_NAME": "0.0.0.0", "SERVER_PORT": "3000"}, "method": "GET", "socket": {"remote_address": "172.23.0.11"}, "cookies": {}, "headers": {"host": "opbeans-python:3000", "user-agent": "curl/7.74.0", "accept": "*/*"}, "url": {"full": "http://opbeans-python:3000/", "protocol": "http:", "hostname": "opbeans-python", "pathname": "/", "port": "3000"}}, "response": {"status_code": 200, "headers": {"Content-Type": "text/html; charset=utf-8", "X-Frame-Options": "DENY", "Content-Length": "871", "Vary": "Cookie", "X-Content-Type-Options": "nosniff", "Referrer-Policy": "same-origin"}}, "user": {"is_authenticated": true, "id": 16, "username": "stevensvirginia", "email": "stevensvirginia@white-riggs.com"}, "tags": {"request_id": "0b51fb06-c0d4-4661-b036-fd403115ebfc", "customer_tier": "$"}}}} -{"metadata": {"service": {"name": "opbeans-python", "environment": "production", "version": "None", "agent": {"name": "python", "version": "6.7.2"}, "language": {"name": "python", "version": "3.10.2"}, "runtime": {"name": "CPython", "version": "3.10.2"}, "framework": {"name": "django", "version": "3.2.11"}}, "process": {"pid": 125, "ppid": 109, "argv": ["/app/venv/bin/gunicorn", "--workers", "4", "--bind", "0.0.0.0:3000", "opbeans.wsgi"], "title": null}, "system": {"hostname": "88abe6e3ded4", "architecture": "x86_64", "platform": "linux"}}} {"metricset": {"samples": {"system.cpu.total.norm.pct": {"value": 0.8283683141503047, "type": "gauge"}, "system.memory.actual.free": {"value": 7660183552, "type": "gauge"}, "system.memory.total": {"value": 12544401408, "type": "gauge"}, "system.process.cpu.total.norm.pct": {"value": 0.0, "type": "gauge"}, "system.process.memory.size": {"value": 0, "type": "gauge"}, "system.process.memory.rss.bytes": {"value": 0, "type": "gauge"}}, "timestamp": 1646055506526762}} {"metricset": {"samples": {"prometheus.metrics.python_gc_objects_collected": {"value": 1636}, "prometheus.metrics.python_gc_objects_uncollectable": {"value": 0}, "prometheus.metrics.python_gc_collections": {"value": 220}}, "timestamp": 1646055506544945, "tags": {"generation": "0"}}} {"metricset": {"samples": {"prometheus.metrics.python_gc_objects_collected": {"value": 0}, "prometheus.metrics.python_gc_objects_uncollectable": {"value": 0}, "prometheus.metrics.python_gc_collections": {"value": 1}}, "timestamp": 1646055506544945, "tags": {"generation": "2"}}} @@ -364,19 +341,15 @@ {"metricset": {"samples": {"prometheus.metrics.python_info": {"value": 1, "type": "gauge"}}, "timestamp": 1646055506544945, "tags": {"implementation": "CPython", "major": "3", "minor": "10", "patchlevel": "2", "version": "3.10.2"}}} {"metricset": {"samples": {"prometheus.metrics.django_migrations_unapplied_total": {"value": 0.0, "type": "gauge"}, "prometheus.metrics.django_migrations_applied_total": {"value": 20.0, "type": "gauge"}}, "timestamp": 1646055506544945, "tags": {"connection": "default"}}} {"metricset": {"samples": {"prometheus.metrics.django_http_requests_latency_seconds_by_view_method": {"counts": [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0], "values": [0.005, 0.0175, 0.037500000000000006, 0.0625, 0.0875, 0.175, 0.375, 0.625, 0.875, 1.75, 3.75, 6.25, 8.75, 17.5, 37.5, 62.5, 75.0], "type": "histogram"}}, "timestamp": 1646055506544945, "tags": {"method": "GET", "view": "opbeans.views.home"}}} -{"metadata": {"service": {"name": "opbeans-python", "environment": "production", "version": "None", "agent": {"name": "python", "version": "6.7.2"}, "language": {"name": "python", "version": "3.10.2"}, "runtime": {"name": "CPython", "version": "3.10.2"}, "framework": {"name": "django", "version": "3.2.11"}}, "process": {"pid": 116, "ppid": 102, "argv": ["/app/venv/bin/celery", "-A", "opbeans", "beat", "-l", "info"], "title": null}, "system": {"hostname": "88abe6e3ded4", "architecture": "x86_64", "platform": "linux"}}} {"metricset": {"samples": {"system.cpu.total.norm.pct": {"value": 0.8275571296062063, "type": "gauge"}, "system.memory.actual.free": {"value": 7559213056, "type": "gauge"}, "system.memory.total": {"value": 12544401408, "type": "gauge"}, "system.process.cpu.total.norm.pct": {"value": 0.0, "type": "gauge"}, "system.process.memory.size": {"value": 0, "type": "gauge"}, "system.process.memory.rss.bytes": {"value": 0, "type": "gauge"}}, "timestamp": 1646055508243820}} {"metricset": {"samples": {"prometheus.metrics.python_gc_objects_collected": {"value": 1633}, "prometheus.metrics.python_gc_objects_uncollectable": {"value": 0}, "prometheus.metrics.python_gc_collections": {"value": 255}}, "timestamp": 1646055508259285, "tags": {"generation": "0"}}} {"metricset": {"samples": {"prometheus.metrics.python_gc_objects_collected": {"value": 36}, "prometheus.metrics.python_gc_objects_uncollectable": {"value": 0}, "prometheus.metrics.python_gc_collections": {"value": 2}}, "timestamp": 1646055508259285, "tags": {"generation": "2"}}} {"metricset": {"samples": {"prometheus.metrics.process_cpu_seconds": {"value": 0.0}, "prometheus.metrics.opbeans_python_line_items": {"value": 0.0}, "prometheus.metrics.process_virtual_memory_bytes": {"value": 0.0, "type": "gauge"}, "prometheus.metrics.process_resident_memory_bytes": {"value": 0.0, "type": "gauge"}, "prometheus.metrics.process_start_time_seconds": {"value": 1645917773.0, "type": "gauge"}, "prometheus.metrics.process_open_fds": {"value": 11, "type": "gauge"}, "prometheus.metrics.process_max_fds": {"value": 1048576.0, "type": "gauge"}, "prometheus.metrics.opbeans_python_orders.sum": {"value": 0.0}, "prometheus.metrics.opbeans_python_orders.count": {"value": 0.0}}, "timestamp": 1646055508259285}} {"metricset": {"samples": {"prometheus.metrics.python_info": {"value": 1, "type": "gauge"}}, "timestamp": 1646055508259285, "tags": {"implementation": "CPython", "major": "3", "minor": "10", "patchlevel": "2", "version": "3.10.2"}}} {"metricset": {"samples": {"prometheus.metrics.django_migrations_unapplied_total": {"value": 0.0, "type": "gauge"}, "prometheus.metrics.django_migrations_applied_total": {"value": 20.0, "type": "gauge"}}, "timestamp": 1646055508259285, "tags": {"connection": "default"}}} -{"metadata": {"service": {"name": "opbeans-python", "environment": "production", "version": "None", "agent": {"name": "python", "version": "6.7.2"}, "language": {"name": "python", "version": "3.10.2"}, "runtime": {"name": "CPython", "version": "3.10.2"}, "framework": {"name": "django", "version": "3.2.11"}}, "process": {"pid": 123, "ppid": 109, "argv": ["/app/venv/bin/gunicorn", "--workers", "4", "--bind", "0.0.0.0:3000", "opbeans.wsgi"], "title": null}, "system": {"hostname": "88abe6e3ded4", "architecture": "x86_64", "platform": "linux"}}} {"span": {"id": "dfaf1f1ea0bb6e32", "transaction_id": "5e8cfc70ae4ddc85", "trace_id": "da61307e05a5d4195773fc273985b73a", "parent_id": "5e8cfc70ae4ddc85", "name": "SELECT FROM opbeans_order", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055507656822, "duration": 3.3534170070197433, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT \"opbeans_order\".\"id\", \"opbeans_order\".\"customer_id\", \"opbeans_order\".\"created_at\" FROM \"opbeans_order\" WHERE \"opbeans_order\".\"id\" = %s LIMIT 21"}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}}} {"span": {"id": "687297ad05c732b7", "transaction_id": "5e8cfc70ae4ddc85", "trace_id": "da61307e05a5d4195773fc273985b73a", "parent_id": "5e8cfc70ae4ddc85", "name": "SELECT FROM opbeans_orderline", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055507673205, "duration": 2.534416998969391, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT \"opbeans_orderline\".\"product_id\", \"opbeans_orderline\".\"amount\", \"opbeans_product\".\"sku\", \"opbeans_product\".\"name\", \"opbeans_product\".\"description\", \"opbeans_product\".\"product_type_id\", \"opbeans_product\".\"stock\", \"opbeans_product\".\"cost\", \"opbeans_product\".\"selling_price\" FROM \"opbeans_orderline\" INNER JOIN \"opbeans_product\" ON (\"opbeans_orderline\".\"product_id\" = \"opbeans_product\".\"id\") WHERE \"opbeans_orderline\".\"order_id\" = %s"}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}}} {"transaction": {"id": "5e8cfc70ae4ddc85", "trace_id": "da61307e05a5d4195773fc273985b73a", "name": "GET opbeans.views.order", "type": "request", "duration": 91.9694580079522, "result": "HTTP 2xx", "timestamp": 1646055507592198, "outcome": "success", "sampled": true, "span_count": {"started": 2, "dropped": 0}, "sample_rate": 1.0, "parent_id": "82c54e39ad4d938a", "context": {"request": {"env": {"REMOTE_ADDR": "172.23.0.12", "SERVER_NAME": "0.0.0.0", "SERVER_PORT": "3000"}, "method": "GET", "socket": {"remote_address": "172.23.0.12"}, "cookies": {}, "headers": {"connection": "close", "host": "opbeans-python:3000", "user-agent": "http.rb/5.0.4", "traceparent": "00-da61307e05a5d4195773fc273985b73a-82c54e39ad4d938a-01", "tracestate": "es=s:1.0", "elastic-apm-traceparent": "00-da61307e05a5d4195773fc273985b73a-82c54e39ad4d938a-01"}, "url": {"full": "http://opbeans-python:3000/api/orders/433", "protocol": "http:", "hostname": "opbeans-python", "pathname": "/api/orders/433", "port": "3000"}}, "response": {"status_code": 200, "headers": {"Content-Type": "application/json", "X-Frame-Options": "DENY", "Content-Length": "330", "Vary": "Cookie", "X-Content-Type-Options": "nosniff", "Referrer-Policy": "same-origin"}}, "user": {"is_authenticated": true, "id": 4, "username": "ooneal", "email": "ooneal@barnett.com"}, "tags": {"request_id": "1cbfdd39-194f-417e-b621-5e5ed75617b5", "customer_tier": "$"}}}} -{"metadata": {"service": {"name": "opbeans-python", "environment": "production", "version": "None", "agent": {"name": "python", "version": "6.7.2"}, "language": {"name": "python", "version": "3.10.2"}, "runtime": {"name": "CPython", "version": "3.10.2"}, "framework": {"name": "django", "version": "3.2.11"}}, "process": {"pid": 156, "ppid": 113, "argv": ["/app/venv/bin/celery", "-A", "opbeans", "worker", "--concurrency=1", "-l", "info"], "title": null}, "system": {"hostname": "88abe6e3ded4", "architecture": "x86_64", "platform": "linux"}}} -{"metadata": {"service": {"name": "opbeans-python", "environment": "production", "version": "None", "agent": {"name": "python", "version": "6.7.2"}, "language": {"name": "python", "version": "3.10.2"}, "runtime": {"name": "CPython", "version": "3.10.2"}, "framework": {"name": "django", "version": "3.2.11"}}, "process": {"pid": 156, "ppid": 113, "argv": ["/app/venv/bin/celery", "-A", "opbeans", "worker", "--concurrency=1", "-l", "info"], "title": null}, "system": {"hostname": "88abe6e3ded4", "architecture": "x86_64", "platform": "linux"}}} {"transaction": {"id": "91e95a8b708c828b", "trace_id": "e9e0a6397a02e86f4748327405fd5f9c", "name": "opbeans.tasks.sync_customers", "type": "celery", "duration": 7927.959169988753, "result": "FAILURE", "timestamp": 1646055501123274, "outcome": "failure", "sampled": true, "span_count": {"started": 4, "dropped": 0}, "sample_rate": 1.0, "context": {"tags": {}}}} {"span": {"id": "168b7a99a0f85fb0", "transaction_id": "f0b7bd6fe173e4f2", "trace_id": "3f6ecb4ef30dd49527db0f5dc53a5f88", "parent_id": "f0b7bd6fe173e4f2", "name": "SELECT FROM opbeans_product", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055509103115, "duration": 19.100625009741634, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT SUM(\"total_revenue\"), SUM(\"total_cost\"), SUM(\"total_profit\") FROM (SELECT COUNT(\"opbeans_orderline\".\"order_id\") AS \"order_count\", (\"opbeans_product\".\"selling_price\" - \"opbeans_product\".\"cost\") AS \"per_item_profit\", (COUNT(\"opbeans_orderline\".\"order_id\") * (\"opbeans_product\".\"selling_price\" - \"opbeans_product\".\"cost\")) AS \"total_profit\", (COUNT(\"opbeans_orderline\".\"order_id\") * \"opbeans_product\".\"selling_price\") AS \"total_revenue\", (COUNT(\"opbeans_orderline\".\"order_id\") * \"opbeans_product\".\"cost\") AS \"total_cost\" FROM \"opbeans_product\" LEFT OUTER JOIN \"opbeans_orderline\" ON (\"opbeans_product\".\"id\" = \"opbeans_orderline\".\"product_id\") GROUP BY \"opbeans_product\".\"id\", (\"opbeans_product\".\"selling_price\" - \"opbeans_product\".\"cost\")) subquery"}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}, "stacktrace": [{"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/backends/utils.py", "filename": "django/db/backends/utils.py", "module": "django.db.backends.utils", "function": "_execute_with_wrappers", "lineno": 75, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/backends/utils.py", "filename": "django/db/backends/utils.py", "module": "django.db.backends.utils", "function": "execute", "lineno": 66, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/sql/compiler.py", "filename": "django/db/models/sql/compiler.py", "module": "django.db.models.sql.compiler", "function": "execute_sql", "lineno": 1175, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/sql/query.py", "filename": "django/db/models/sql/query.py", "module": "django.db.models.sql.query", "function": "get_aggregation", "lineno": 504, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/query.py", "filename": "django/db/models/query.py", "module": "django.db.models.query", "function": "aggregate", "lineno": 399, "library_frame": true}, {"abs_path": "/app/opbeans/utils.py", "filename": "opbeans/utils.py", "module": "opbeans.utils", "function": "stats", "lineno": 9, "library_frame": false, "pre_context": ["", "def stats():"], "context_line": " numbers = m.Product.objects.annotate(", "post_context": [" order_count=models.Count('order'),", " per_item_profit=models.F('selling_price') - models.F('cost')"]}, {"abs_path": "/app/opbeans/tasks.py", "filename": "opbeans/tasks.py", "module": "opbeans.tasks", "function": "update_stats", "lineno": 22, "library_frame": false, "pre_context": [" elasticapm.label(a=\"x\", b=\"y\")", " elasticapm.set_custom_context({\"a\": \"x\", \"b\": \"y\"})"], "context_line": " cache.set(utils.stats.cache_key, utils.stats(), 60)", "post_context": ["", ""]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "__protected_call__", "lineno": 734, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "trace_task", "lineno": 451, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "fast_trace_task", "lineno": 649, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "workloop", "lineno": 362, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "__call__", "lineno": 292, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "run", "lineno": 114, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "_bootstrap", "lineno": 327, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/popen_fork.py", "filename": "billiard/popen_fork.py", "module": "billiard.popen_fork", "function": "_launch", "lineno": 79, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/popen_fork.py", "filename": "billiard/popen_fork.py", "module": "billiard.popen_fork", "function": "__init__", "lineno": 24, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/context.py", "filename": "billiard/context.py", "module": "billiard.context", "function": "_Popen", "lineno": 333, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "start", "lineno": 124, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "_create_worker_process", "lineno": 1158, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/asynpool.py", "filename": "celery/concurrency/asynpool.py", "module": "celery.concurrency.asynpool", "function": "_create_worker_process", "lineno": 480, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "__init__", "lineno": 1046, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/asynpool.py", "filename": "celery/concurrency/asynpool.py", "module": "celery.concurrency.asynpool", "function": "__init__", "lineno": 463, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/prefork.py", "filename": "celery/concurrency/prefork.py", "module": "celery.concurrency.prefork", "function": "on_start", "lineno": 109, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/base.py", "filename": "celery/concurrency/base.py", "module": "celery.concurrency.base", "function": "start", "lineno": 129, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bootsteps.py", "filename": "celery/bootsteps.py", "module": "celery.bootsteps", "function": "start", "lineno": 365, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bootsteps.py", "filename": "celery/bootsteps.py", "module": "celery.bootsteps", "function": "start", "lineno": 116, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/worker/worker.py", "filename": "celery/worker/worker.py", "module": "celery.worker.worker", "function": "start", "lineno": 203, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/worker.py", "filename": "celery/bin/worker.py", "module": "celery.bin.worker", "function": "worker", "lineno": 351, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/base.py", "filename": "celery/bin/base.py", "module": "celery.bin.base", "function": "caller", "lineno": 134, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/decorators.py", "filename": "click/decorators.py", "module": "click.decorators", "function": "new_func", "lineno": 26, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 754, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 1395, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 1659, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "main", "lineno": 1053, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "__call__", "lineno": 1128, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/celery.py", "filename": "celery/bin/celery.py", "module": "celery.bin.celery", "function": "main", "lineno": 213, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/__main__.py", "filename": "celery/__main__.py", "module": "celery.__main__", "function": "main", "lineno": 15, "library_frame": true}, {"abs_path": "/app/venv/bin/celery", "filename": "bin/celery", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(main())", "post_context": []}]}} {"span": {"id": "184c3e9f5e505828", "transaction_id": "f0b7bd6fe173e4f2", "trace_id": "3f6ecb4ef30dd49527db0f5dc53a5f88", "parent_id": "f0b7bd6fe173e4f2", "name": "SELECT FROM opbeans_product", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055509126677, "duration": 0.8732090063858777, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT COUNT(*) AS \"__count\" FROM \"opbeans_product\""}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}}} @@ -402,7 +375,6 @@ {"span": {"id": "1aff59c3926d56ee", "transaction_id": "fdcd74833d08501e", "trace_id": "25d11568faf087eb6c7fab8e02ed375f", "parent_id": "fdcd74833d08501e", "name": "SELECT FROM opbeans_order", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055512146193, "duration": 1.7060409882105887, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT \"opbeans_order\".\"id\", \"opbeans_order\".\"customer_id\", \"opbeans_order\".\"created_at\" FROM \"opbeans_order\" LIMIT 21"}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}}} {"span": {"id": "c806e8813577a91c", "transaction_id": "fdcd74833d08501e", "trace_id": "25d11568faf087eb6c7fab8e02ed375f", "parent_id": "fdcd74833d08501e", "name": "SELECT FROM opbeans_order", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055512152007, "duration": 1.2090419768355787, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT \"opbeans_order\".\"id\", \"opbeans_order\".\"customer_id\", \"opbeans_order\".\"created_at\" FROM \"opbeans_order\" LIMIT 21"}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}}} {"error": {"context": {"custom": {}}, "id": "d2a6bbd24774f0589a934f3b4129b7b8", "exception": {"message": "ValueError: Cannot use None as a query value", "type": "ValueError", "module": "builtins", "stacktrace": [{"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "trace_task", "lineno": 451, "library_frame": true, "vars": {"uuid": "116c0d7e-123e-4cd8-9693-a43d98f02732", "args": [], "kwargs": {}, "request": {"lang": "py", "task": "opbeans.tasks.sync_orders", "id": "116c0d7e-123e-4cd8-9693-a43d98f02732", "shadow": null, "eta": null, "expires": null, "group": null, "group_index": null, "retries": 0, "timelimit": [null, null], "": "(18 more elements)"}, "R": null, "I": null, "T": null, "Rstr": null, "retval": null, "state": null, "task_request": "", "_does_info": true, "app": "", "deduplicate_successful_tasks": false, "eager": false, "fun": "<@task: opbeans.tasks.sync_orders of opbeans at 0x401fc59ab0>", "hostname": "celery@88abe6e3ded4", "inherit_parent_priority": false, "loader_cleanup": ">", "loader_task_init": ">", "monotonic": "", "name": "opbeans.tasks.sync_orders", "on_error": ".on_error at 0x4020479c60>", "pid": 156, "pop_request": ">", "pop_task": ">", "postrun_receivers": [[["elasticapm-tracing-postrun", 274907146592], ".end_transaction at 0x401fc0f130>"], [[275412920512, 274907146592], ""]], "prerun_receivers": [[["elasticapm-tracing-prerun", 274907146592], ".begin_transaction at 0x401fa8d990>"], [[275412920368, 274907146592], ""]], "publish_result": true, "push_request": ">", "push_task": ">", "resultrepr_maxsize": 1024, "signature": "", "success_receivers": [], "task": "<@task: opbeans.tasks.sync_orders of opbeans at 0x401fc59ab0>", "task_after_return": null, "task_before_start": null, "task_on_success": null, "trace_ok_t": "", "track_started": false, "exc": "ValueError('Cannot use None as a query value')"}, "pre_context": [" task_before_start(uuid, args, kwargs)", ""], "context_line": " R = retval = fun(*args, **kwargs)", "post_context": [" state = SUCCESS", " except Reject as exc:"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "__protected_call__", "lineno": 734, "library_frame": true, "vars": {"self": "<@task: opbeans.tasks.sync_orders of opbeans at 0x401fc59ab0>", "args": [], "kwargs": {}, "stack": "", "req": ""}, "pre_context": [" len(stack) == 1 and not req.called_directly:", " req._protected = 1"], "context_line": " return self.run(*args, **kwargs)", "post_context": [" return orig(self, *args, **kwargs)", " BaseTask.__call__ = __protected_call__"]}, {"abs_path": "/app/opbeans/tasks.py", "filename": "opbeans/tasks.py", "module": "opbeans.tasks", "function": "sync_orders", "lineno": 43, "library_frame": false, "vars": {"highest_id": null, "order_docs": []}, "pre_context": [" highest_id = 0", " order_docs = []"], "context_line": " for order in models.Order.objects.filter(id__gt=highest_id).prefetch_related('customer'):", "post_context": [" order_docs.append(documents.Order(**order.to_search()).to_dict(include_meta=True))", " bulk(connections.get_connection(), order_docs)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/manager.py", "filename": "django/db/models/manager.py", "module": "django.db.models.manager", "function": "manager_method", "lineno": 85, "library_frame": true, "vars": {"self": "", "args": [], "kwargs": {"id__gt": null}, "name": "filter"}, "pre_context": [" def create_method(name, method):", " def manager_method(self, *args, **kwargs):"], "context_line": " return getattr(self.get_queryset(), name)(*args, **kwargs)", "post_context": [" manager_method.__name__ = method.__name__", " manager_method.__doc__ = method.__doc__"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/query.py", "filename": "django/db/models/query.py", "module": "django.db.models.query", "function": "filter", "lineno": 941, "library_frame": true, "vars": {"self": ", , , , , , , , , , , , , , , , , , , , , , , , ", "existing_inner": [], "self": ""}, "pre_context": [" # So, demotion is OK.", " existing_inner = {a for a in self.alias_map if self.alias_map[a].join_type == INNER}"], "context_line": " clause, _ = self._add_q(q_object, self.used_aliases)", "post_context": [" if clause:", " self.where.add(clause, AND)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/sql/query.py", "filename": "django/db/models/sql/query.py", "module": "django.db.models.sql.query", "function": "_add_q", "lineno": 1412, "library_frame": true, "vars": {"self": "", "q_object": "", "used_aliases": ["opbeans_order"], "branch_negated": false, "current_negated": false, "allow_joins": true, "split_subq": true, "check_filterable": true, "connector": "AND", "target_clause": "", "joinpromoter": "", "child": ["id__gt", null]}, "pre_context": [" joinpromoter = JoinPromoter(q_object.connector, len(q_object.children), current_negated)", " for child in q_object.children:"], "context_line": " child_clause, needed_inner = self.build_filter(", "post_context": [" child, can_reuse=used_aliases, branch_negated=branch_negated,", " current_negated=current_negated, allow_joins=allow_joins,"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/sql/query.py", "filename": "django/db/models/sql/query.py", "module": "django.db.models.sql.query", "function": "build_filter", "lineno": 1347, "library_frame": true, "vars": {"self": "", "filter_expr": ["id__gt", null], "branch_negated": false, "current_negated": false, "can_reuse": ["opbeans_order"], "allow_joins": true, "split_subq": true, "reuse_with_filtered_relation": false, "check_filterable": true, "clause": "", "arg": "id__gt", "value": null, "lookups": ["gt"], "parts": ["id"], "reffed_expression": false, "used_joins": ["opbeans_order"], "opts": "", "alias": "opbeans_order", "allow_many": true, "join_info": ["", [""], "", ["opbeans_order"], [], ".final_transformer at 0x40207ae710>"], "targets": [""], "join_list": ["opbeans_order"], "col": "Col(opbeans_order, opbeans.Order.id)", "pre_joins": {}}, "pre_context": [" col = self._get_col(targets[0], join_info.final_field, alias)", ""], "context_line": " condition = self.build_lookup(lookups, col, value)", "post_context": [" lookup_type = condition.lookup_name", " clause.add(condition, AND)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/sql/query.py", "filename": "django/db/models/sql/query.py", "module": "django.db.models.sql.query", "function": "build_lookup", "lineno": 1198, "library_frame": true, "vars": {"self": "", "lookups": ["gt"], "lhs": "Col(opbeans_order, opbeans.Order.id)", "rhs": null, "transforms": [], "lookup_name": "gt", "lookup_class": "", "lookup": ""}, "pre_context": [" if lookup.rhs is None and not lookup.can_use_none_as_rhs:", " if lookup_name not in ('exact', 'iexact'):"], "context_line": " raise ValueError(\"Cannot use None as a query value\")", "post_context": [" return lhs.get_lookup('isnull')(lhs, True)", ""]}], "handled": false}, "culprit": "django.db.models.sql.query.build_lookup", "timestamp": 1646055512110927, "trace_id": "25d11568faf087eb6c7fab8e02ed375f", "parent_id": "fdcd74833d08501e", "transaction_id": "fdcd74833d08501e", "transaction": {"sampled": true, "type": "celery"}}} -{"metadata": {"service": {"name": "opbeans-python", "environment": "production", "version": "None", "agent": {"name": "python", "version": "6.7.2"}, "language": {"name": "python", "version": "3.10.2"}, "runtime": {"name": "CPython", "version": "3.10.2"}, "framework": {"name": "django", "version": "3.2.11"}}, "process": {"pid": 125, "ppid": 109, "argv": ["/app/venv/bin/gunicorn", "--workers", "4", "--bind", "0.0.0.0:3000", "opbeans.wsgi"], "title": null}, "system": {"hostname": "88abe6e3ded4", "architecture": "x86_64", "platform": "linux"}}} {"span": {"id": "7e12a2d5312193d9", "transaction_id": "7b30b878a1203bae", "trace_id": "b9f8c504a8aa23a4ef797ec8fcc90470", "parent_id": "7b30b878a1203bae", "name": "hard-home-work", "type": "code", "subtype": "custom", "action": null, "timestamp": 1646055512754196, "duration": 230.14720898936503, "outcome": "success", "sample_rate": 1.0, "stacktrace": [{"abs_path": "/app/opbeans/views.py", "filename": "opbeans/views.py", "module": "opbeans.views", "function": "home", "lineno": 308, "library_frame": false, "pre_context": ["", "def home(request):"], "context_line": " with elasticapm.capture_span(\"hard-home-work\"):", "post_context": [" time.sleep(random.random() / 2.0)", " return render(request, \"index.html\")"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "_get_response", "lineno": 181, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/whitenoise/middleware.py", "filename": "whitenoise/middleware.py", "module": "whitenoise.middleware", "function": "__call__", "lineno": 60, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "get_response", "lineno": 130, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/wsgi.py", "filename": "django/core/handlers/wsgi.py", "module": "django.core.handlers.wsgi", "function": "__call__", "lineno": 133, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle_request", "lineno": 179, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle", "lineno": 136, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "accept", "lineno": 31, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run_for_one", "lineno": 69, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run", "lineno": 125, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/base.py", "filename": "gunicorn/workers/base.py", "module": "gunicorn.workers.base", "function": "init_process", "lineno": 142, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_worker", "lineno": 589, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_workers", "lineno": 622, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "manage_workers", "lineno": 551, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "run", "lineno": 202, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 72, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 231, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/wsgiapp.py", "filename": "gunicorn/app/wsgiapp.py", "module": "gunicorn.app.wsgiapp", "function": "run", "lineno": 67, "library_frame": true}, {"abs_path": "/app/venv/bin/gunicorn", "filename": "bin/gunicorn", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(run())", "post_context": []}]}} {"span": {"id": "a6dd0c7e078f6551", "transaction_id": "7b30b878a1203bae", "trace_id": "b9f8c504a8aa23a4ef797ec8fcc90470", "parent_id": "7b30b878a1203bae", "name": "index.html", "type": "template", "subtype": "django", "action": "render", "timestamp": 1646055512987593, "duration": 9.470666002016515, "outcome": "success", "sample_rate": 1.0, "stacktrace": [{"abs_path": "/app/venv/lib/python3.10/site-packages/django/template/backends/django.py", "filename": "django/template/backends/django.py", "module": "django.template.backends.django", "function": "render", "lineno": 61, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/template/loader.py", "filename": "django/template/loader.py", "module": "django.template.loader", "function": "render_to_string", "lineno": 62, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/shortcuts.py", "filename": "django/shortcuts.py", "module": "django.shortcuts", "function": "render", "lineno": 19, "library_frame": true}, {"abs_path": "/app/opbeans/views.py", "filename": "opbeans/views.py", "module": "opbeans.views", "function": "home", "lineno": 310, "library_frame": false, "pre_context": [" with elasticapm.capture_span(\"hard-home-work\"):", " time.sleep(random.random() / 2.0)"], "context_line": " return render(request, \"index.html\")", "post_context": ["", ""]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "_get_response", "lineno": 181, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/whitenoise/middleware.py", "filename": "whitenoise/middleware.py", "module": "whitenoise.middleware", "function": "__call__", "lineno": 60, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "get_response", "lineno": 130, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/wsgi.py", "filename": "django/core/handlers/wsgi.py", "module": "django.core.handlers.wsgi", "function": "__call__", "lineno": 133, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle_request", "lineno": 179, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle", "lineno": 136, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "accept", "lineno": 31, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run_for_one", "lineno": 69, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run", "lineno": 125, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/base.py", "filename": "gunicorn/workers/base.py", "module": "gunicorn.workers.base", "function": "init_process", "lineno": 142, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_worker", "lineno": 589, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_workers", "lineno": 622, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "manage_workers", "lineno": 551, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "run", "lineno": 202, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 72, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 231, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/wsgiapp.py", "filename": "gunicorn/app/wsgiapp.py", "module": "gunicorn.app.wsgiapp", "function": "run", "lineno": 67, "library_frame": true}, {"abs_path": "/app/venv/bin/gunicorn", "filename": "bin/gunicorn", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(run())", "post_context": []}]}} {"transaction": {"id": "7b30b878a1203bae", "trace_id": "b9f8c504a8aa23a4ef797ec8fcc90470", "name": "GET opbeans.views.home", "type": "request", "duration": 260.6737919850275, "result": "HTTP 2xx", "timestamp": 1646055512746086, "outcome": "success", "sampled": true, "span_count": {"started": 2, "dropped": 0}, "sample_rate": 1.0, "parent_id": "e1f38311280fc375", "context": {"request": {"env": {"REMOTE_ADDR": "172.23.0.11", "SERVER_NAME": "0.0.0.0", "SERVER_PORT": "3000"}, "method": "GET", "socket": {"remote_address": "172.23.0.11"}, "cookies": {}, "headers": {"host": "opbeans-python:3000", "user-agent": "curl/7.74.0", "accept": "*/*"}, "url": {"full": "http://opbeans-python:3000/", "protocol": "http:", "hostname": "opbeans-python", "pathname": "/", "port": "3000"}}, "response": {"status_code": 200, "headers": {"Content-Type": "text/html; charset=utf-8", "X-Frame-Options": "DENY", "Content-Length": "871", "Vary": "Cookie", "X-Content-Type-Options": "nosniff", "Referrer-Policy": "same-origin"}}, "user": {"is_authenticated": true, "id": 5, "username": "ryan54", "email": "ryan54@harding.org"}, "tags": {"request_id": "316cd0c6-1181-4def-ae3d-451367764f84", "customer_tier": "$$$$"}}}} @@ -430,7 +402,6 @@ {"transaction": {"id": "3d394e2770cdaa13", "trace_id": "74306e2162d95e62a0ff4d584ff62f21", "name": "GET opbeans.views.product_types", "type": "request", "duration": 48.36691700620577, "result": "HTTP 2xx", "timestamp": 1646055516003325, "outcome": "success", "sampled": true, "span_count": {"started": 1, "dropped": 0}, "sample_rate": 1.0, "parent_id": "fd912b5b06cb00ce", "context": {"request": {"env": {"REMOTE_ADDR": "172.23.0.9", "SERVER_NAME": "0.0.0.0", "SERVER_PORT": "3000"}, "method": "GET", "socket": {"remote_address": "172.23.0.9"}, "cookies": {}, "headers": {"host": "opbeans-go:3000", "user-agent": "Python/3.7 aiohttp/3.3.2", "accept": "*/*", "accept-encoding": "gzip, deflate", "elastic-apm-traceparent": "00-74306e2162d95e62a0ff4d584ff62f21-fd912b5b06cb00ce-01", "traceparent": "00-74306e2162d95e62a0ff4d584ff62f21-fd912b5b06cb00ce-01", "tracestate": "es=s:1", "x-forwarded-for": "172.23.0.14, 172.23.0.9"}, "url": {"full": "http://opbeans-go:3000/api/types", "protocol": "http:", "hostname": "opbeans-go", "pathname": "/api/types", "port": "3000"}}, "response": {"status_code": 200, "headers": {"Content-Type": "application/json", "X-Frame-Options": "DENY", "Content-Length": "123", "Vary": "Cookie", "X-Content-Type-Options": "nosniff", "Referrer-Policy": "same-origin"}}, "user": {"is_authenticated": true, "id": 12, "username": "matthew21", "email": "matthew21@hernandez-travis.org"}, "tags": {"request_id": "92f2e7ee-8392-407f-84cb-a72ddb02a3a5", "customer_tier": "$"}}}} {"span": {"id": "8d629254b9206ca0", "transaction_id": "f3532bc1d09fa44b", "trace_id": "22e5413c28c0577fc578639315b8b7f5", "parent_id": "f3532bc1d09fa44b", "name": "SELECT FROM opbeans_order", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055516215748, "duration": 2.5855420099105686, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT \"opbeans_order\".\"id\", \"opbeans_order\".\"customer_id\", \"opbeans_order\".\"created_at\" FROM \"opbeans_order\" LIMIT 1000"}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}}} {"span": {"id": "ee179707536314a8", "transaction_id": "f3532bc1d09fa44b", "trace_id": "22e5413c28c0577fc578639315b8b7f5", "parent_id": "9dc3132205de42c5", "name": "SELECT FROM opbeans_customer", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055516293617, "duration": 1.3824579946231097, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT \"opbeans_customer\".\"id\", \"opbeans_customer\".\"full_name\", \"opbeans_customer\".\"company_name\", \"opbeans_customer\".\"email\", \"opbeans_customer\".\"address\", \"opbeans_customer\".\"postal_code\", \"opbeans_customer\".\"city\", \"opbeans_customer\".\"country\" FROM \"opbeans_customer\" WHERE \"opbeans_customer\".\"id\" = %s LIMIT 21"}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}}} -{"metadata": {"service": {"name": "opbeans-python", "environment": "production", "version": "None", "agent": {"name": "python", "version": "6.7.2"}, "language": {"name": "python", "version": "3.10.2"}, "runtime": {"name": "CPython", "version": "3.10.2"}, "framework": {"name": "django", "version": "3.2.11"}}, "process": {"pid": 119, "ppid": 109, "argv": ["/app/venv/bin/gunicorn", "--workers", "4", "--bind", "0.0.0.0:3000", "opbeans.wsgi"], "title": null}, "system": {"hostname": "88abe6e3ded4", "architecture": "x86_64", "platform": "linux"}}} {"metricset": {"samples": {"system.cpu.total.norm.pct": {"value": 0.8308730493462674, "type": "gauge"}, "system.memory.actual.free": {"value": 7647068160, "type": "gauge"}, "system.memory.total": {"value": 12544401408, "type": "gauge"}, "system.process.cpu.total.norm.pct": {"value": 0.0, "type": "gauge"}, "system.process.memory.size": {"value": 0, "type": "gauge"}, "system.process.memory.rss.bytes": {"value": 0, "type": "gauge"}}, "timestamp": 1646055507237351}} {"metricset": {"samples": {"prometheus.metrics.python_gc_objects_collected": {"value": 1636}, "prometheus.metrics.python_gc_objects_uncollectable": {"value": 0}, "prometheus.metrics.python_gc_collections": {"value": 220}}, "timestamp": 1646055507258050, "tags": {"generation": "0"}}} {"metricset": {"samples": {"prometheus.metrics.python_gc_objects_collected": {"value": 0}, "prometheus.metrics.python_gc_objects_uncollectable": {"value": 0}, "prometheus.metrics.python_gc_collections": {"value": 1}}, "timestamp": 1646055507258050, "tags": {"generation": "2"}}} @@ -499,7 +470,6 @@ {"span": {"id": "1e363d50c239b8c0", "transaction_id": "49ac866cf502d8c3", "trace_id": "937a3bb02673e3350b7d9af16e4cf77c", "parent_id": "c29191af13b4ade7", "name": "SELECT FROM opbeans_customer", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055514019886, "duration": 2.089709014398977, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT \"opbeans_customer\".\"id\", \"opbeans_customer\".\"full_name\", \"opbeans_customer\".\"company_name\", \"opbeans_customer\".\"email\", \"opbeans_customer\".\"address\", \"opbeans_customer\".\"postal_code\", \"opbeans_customer\".\"city\", \"opbeans_customer\".\"country\" FROM \"opbeans_customer\" WHERE \"opbeans_customer\".\"id\" = %s LIMIT 21"}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}}} {"span": {"id": "5faae8076bc58b00", "transaction_id": "49ac866cf502d8c3", "trace_id": "937a3bb02673e3350b7d9af16e4cf77c", "parent_id": "c29191af13b4ade7", "name": "SELECT FROM opbeans_customer", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055514025780, "duration": 1.1807499977294356, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT \"opbeans_customer\".\"id\", \"opbeans_customer\".\"full_name\", \"opbeans_customer\".\"company_name\", \"opbeans_customer\".\"email\", \"opbeans_customer\".\"address\", \"opbeans_customer\".\"postal_code\", \"opbeans_customer\".\"city\", \"opbeans_customer\".\"country\" FROM \"opbeans_customer\" WHERE \"opbeans_customer\".\"id\" = %s LIMIT 21"}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}}} {"span": {"id": "0f94054f5cccbe51", "transaction_id": "49ac866cf502d8c3", "trace_id": "937a3bb02673e3350b7d9af16e4cf77c", "parent_id": "c29191af13b4ade7", "name": "SELECT FROM opbeans_customer", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055514030957, "duration": 1.7467919969931245, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT \"opbeans_customer\".\"id\", \"opbeans_customer\".\"full_name\", \"opbeans_customer\".\"company_name\", \"opbeans_customer\".\"email\", \"opbeans_customer\".\"address\", \"opbeans_customer\".\"postal_code\", \"opbeans_customer\".\"city\", \"opbeans_customer\".\"country\" FROM \"opbeans_customer\" WHERE \"opbeans_customer\".\"id\" = %s LIMIT 21"}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}}} -{"metadata": {"service": {"name": "opbeans-python", "environment": "production", "version": "None", "agent": {"name": "python", "version": "6.7.2"}, "language": {"name": "python", "version": "3.10.2"}, "runtime": {"name": "CPython", "version": "3.10.2"}, "framework": {"name": "django", "version": "3.2.11"}}, "process": {"pid": 121, "ppid": 109, "argv": ["/app/venv/bin/gunicorn", "--workers", "4", "--bind", "0.0.0.0:3000", "opbeans.wsgi"], "title": null}, "system": {"hostname": "88abe6e3ded4", "architecture": "x86_64", "platform": "linux"}}} {"metricset": {"samples": {"system.cpu.total.norm.pct": {"value": 0.8296791670193854, "type": "gauge"}, "system.memory.actual.free": {"value": 7652118528, "type": "gauge"}, "system.memory.total": {"value": 12544401408, "type": "gauge"}, "system.process.cpu.total.norm.pct": {"value": 0.0, "type": "gauge"}, "system.process.memory.size": {"value": 0, "type": "gauge"}, "system.process.memory.rss.bytes": {"value": 0, "type": "gauge"}}, "timestamp": 1646055506700291}} {"metricset": {"samples": {"span.self_time.sum.us": {"value": 590045}, "span.self_time.count": {"value": 2}}, "timestamp": 1646055506701670, "tags": {}, "span": {"type": "code", "subtype": "custom"}, "transaction": {"name": "GET opbeans.views.home", "type": "request"}}} {"metricset": {"samples": {"span.self_time.sum.us": {"value": 25824}, "span.self_time.count": {"value": 2}}, "timestamp": 1646055506701670, "tags": {}, "span": {"type": "template", "subtype": "django"}, "transaction": {"name": "GET opbeans.views.home", "type": "request"}}} @@ -548,7 +518,6 @@ {"transaction": {"id": "b6de66879fd3de49", "trace_id": "383c6bb3207030155feef26be6f72966", "name": "GET opbeans.views.products", "type": "request", "duration": 316.17095798719674, "result": "HTTP 2xx", "timestamp": 1646055516024187, "outcome": "success", "sampled": true, "span_count": {"started": 1, "dropped": 0}, "sample_rate": 1.0, "parent_id": "54ce7ae818a93fb4", "context": {"request": {"env": {"REMOTE_ADDR": "172.23.0.12", "SERVER_NAME": "0.0.0.0", "SERVER_PORT": "3000"}, "method": "GET", "socket": {"remote_address": "172.23.0.12"}, "cookies": {}, "headers": {"connection": "close", "host": "opbeans-python:3000", "user-agent": "http.rb/5.0.4", "traceparent": "00-383c6bb3207030155feef26be6f72966-54ce7ae818a93fb4-01", "tracestate": "es=s:1.0", "elastic-apm-traceparent": "00-383c6bb3207030155feef26be6f72966-54ce7ae818a93fb4-01"}, "url": {"full": "http://opbeans-python:3000/api/products", "protocol": "http:", "hostname": "opbeans-python", "pathname": "/api/products", "port": "3000"}}, "response": {"status_code": 200, "headers": {"Content-Type": "application/json; charset=utf-8", "X-Frame-Options": "DENY", "Content-Length": "2926", "Vary": "Cookie", "X-Content-Type-Options": "nosniff", "Referrer-Policy": "same-origin"}}, "user": {"is_authenticated": true, "id": 6, "username": "tannermonica", "email": "tannermonica@burton-davis.com"}, "tags": {"request_id": "dad0c393-9fac-4767-b83e-db5d53296af1", "customer_tier": "$$$$"}}}} {"span": {"id": "9b38d910bc5094d9", "transaction_id": "bc22d97b89b53386", "trace_id": "462e1b36465782d2dfbe3ad7edaecdea", "parent_id": "bc22d97b89b53386", "name": "GET opbeans-node:3000", "type": "external", "subtype": "http", "action": null, "timestamp": 1646055516541545, "duration": 139.19008400989696, "outcome": "success", "sample_rate": 1.0, "context": {"http": {"url": "http://opbeans-node:3000/api/types/2", "status_code": 200}, "destination": {"service": {"resource": "opbeans-node:3000", "name": "", "type": ""}}}, "stacktrace": [{"abs_path": "/app/venv/lib/python3.10/site-packages/requests/sessions.py", "filename": "requests/sessions.py", "module": "requests.sessions", "function": "request", "lineno": 529, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/requests/api.py", "filename": "requests/api.py", "module": "requests.api", "function": "request", "lineno": 61, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/requests/api.py", "filename": "requests/api.py", "module": "requests.api", "function": "get", "lineno": 75, "library_frame": true}, {"abs_path": "/app/opbeans/views.py", "filename": "opbeans/views.py", "module": "opbeans.views", "function": "wrapped_view", "lineno": 57, "library_frame": false, "pre_context": [" logger.info(\"dt_ping_pong_proxy\", url=url)", " try:"], "context_line": " other_response = requests.get(url, timeout=15)", "post_context": [" except requests.exceptions.Timeout:", " logger.error(\"dt_ping_pong_timeout\", service=other_service)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "_get_response", "lineno": 181, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/whitenoise/middleware.py", "filename": "whitenoise/middleware.py", "module": "whitenoise.middleware", "function": "__call__", "lineno": 60, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "get_response", "lineno": 130, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/wsgi.py", "filename": "django/core/handlers/wsgi.py", "module": "django.core.handlers.wsgi", "function": "__call__", "lineno": 133, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle_request", "lineno": 179, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle", "lineno": 136, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "accept", "lineno": 31, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run_for_one", "lineno": 69, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run", "lineno": 125, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/base.py", "filename": "gunicorn/workers/base.py", "module": "gunicorn.workers.base", "function": "init_process", "lineno": 142, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_worker", "lineno": 589, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_workers", "lineno": 622, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "manage_workers", "lineno": 551, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "run", "lineno": 202, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 72, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 231, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/wsgiapp.py", "filename": "gunicorn/app/wsgiapp.py", "module": "gunicorn.app.wsgiapp", "function": "run", "lineno": 67, "library_frame": true}, {"abs_path": "/app/venv/bin/gunicorn", "filename": "bin/gunicorn", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(run())", "post_context": []}]}} {"transaction": {"id": "bc22d97b89b53386", "trace_id": "462e1b36465782d2dfbe3ad7edaecdea", "name": "GET opbeans.views.product_type", "type": "request", "duration": 170.88525000144728, "result": "HTTP 2xx", "timestamp": 1646055516524098, "outcome": "success", "sampled": true, "span_count": {"started": 1, "dropped": 0}, "sample_rate": 1.0, "parent_id": "1ffffca7fb97c00b", "context": {"request": {"env": {"REMOTE_ADDR": "172.23.0.10", "SERVER_NAME": "0.0.0.0", "SERVER_PORT": "3000"}, "method": "GET", "socket": {"remote_address": "172.23.0.10"}, "cookies": {}, "headers": {"traceparent": "00-462e1b36465782d2dfbe3ad7edaecdea-1ffffca7fb97c00b-01", "tracestate": "es=s:1", "elastic-apm-traceparent": "00-462e1b36465782d2dfbe3ad7edaecdea-1ffffca7fb97c00b-01", "host": "opbeans-python:3000", "connection": "close"}, "url": {"full": "http://opbeans-python:3000/api/types/2", "protocol": "http:", "hostname": "opbeans-python", "pathname": "/api/types/2", "port": "3000"}}, "response": {"status_code": 200, "headers": {"Content-Type": "application/json; charset=utf-8", "X-Frame-Options": "DENY", "Content-Length": "117", "Vary": "Cookie", "X-Content-Type-Options": "nosniff", "Referrer-Policy": "same-origin"}}, "user": {"is_authenticated": true, "id": 1, "username": "wendy95", "email": "wendy95@walter-lee.org"}, "tags": {"request_id": "ded27e44-0be8-4350-ad72-59aef5402386", "customer_tier": "$$$$"}}}} -{"metadata": {"service": {"name": "opbeans-python", "environment": "production", "version": "None", "agent": {"name": "python", "version": "6.7.2"}, "language": {"name": "python", "version": "3.10.2"}, "runtime": {"name": "CPython", "version": "3.10.2"}, "framework": {"name": "django", "version": "3.2.11"}}, "process": {"pid": 156, "ppid": 113, "argv": ["/app/venv/bin/celery", "-A", "opbeans", "worker", "--concurrency=1", "-l", "info"], "title": null}, "system": {"hostname": "88abe6e3ded4", "architecture": "x86_64", "platform": "linux"}}} {"transaction": {"id": "fdcd74833d08501e", "trace_id": "25d11568faf087eb6c7fab8e02ed375f", "name": "opbeans.tasks.sync_orders", "type": "celery", "duration": 91.60666700336151, "result": "FAILURE", "timestamp": 1646055512086421, "outcome": "failure", "sampled": true, "span_count": {"started": 7, "dropped": 0}, "sample_rate": 1.0, "context": {"tags": {}}}} {"span": {"id": "fd686e06609275cb", "transaction_id": "9606016477b12912", "trace_id": "0702ad0218922d52f0de95e24cc5a8e4", "parent_id": "9606016477b12912", "name": "SELECT FROM opbeans_product", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055512635718, "duration": 26.029667002148926, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT SUM(\"total_revenue\"), SUM(\"total_cost\"), SUM(\"total_profit\") FROM (SELECT COUNT(\"opbeans_orderline\".\"order_id\") AS \"order_count\", (\"opbeans_product\".\"selling_price\" - \"opbeans_product\".\"cost\") AS \"per_item_profit\", (COUNT(\"opbeans_orderline\".\"order_id\") * (\"opbeans_product\".\"selling_price\" - \"opbeans_product\".\"cost\")) AS \"total_profit\", (COUNT(\"opbeans_orderline\".\"order_id\") * \"opbeans_product\".\"selling_price\") AS \"total_revenue\", (COUNT(\"opbeans_orderline\".\"order_id\") * \"opbeans_product\".\"cost\") AS \"total_cost\" FROM \"opbeans_product\" LEFT OUTER JOIN \"opbeans_orderline\" ON (\"opbeans_product\".\"id\" = \"opbeans_orderline\".\"product_id\") GROUP BY \"opbeans_product\".\"id\", (\"opbeans_product\".\"selling_price\" - \"opbeans_product\".\"cost\")) subquery"}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}, "stacktrace": [{"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/backends/utils.py", "filename": "django/db/backends/utils.py", "module": "django.db.backends.utils", "function": "_execute_with_wrappers", "lineno": 75, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/backends/utils.py", "filename": "django/db/backends/utils.py", "module": "django.db.backends.utils", "function": "execute", "lineno": 66, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/sql/compiler.py", "filename": "django/db/models/sql/compiler.py", "module": "django.db.models.sql.compiler", "function": "execute_sql", "lineno": 1175, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/sql/query.py", "filename": "django/db/models/sql/query.py", "module": "django.db.models.sql.query", "function": "get_aggregation", "lineno": 504, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/query.py", "filename": "django/db/models/query.py", "module": "django.db.models.query", "function": "aggregate", "lineno": 399, "library_frame": true}, {"abs_path": "/app/opbeans/utils.py", "filename": "opbeans/utils.py", "module": "opbeans.utils", "function": "stats", "lineno": 9, "library_frame": false, "pre_context": ["", "def stats():"], "context_line": " numbers = m.Product.objects.annotate(", "post_context": [" order_count=models.Count('order'),", " per_item_profit=models.F('selling_price') - models.F('cost')"]}, {"abs_path": "/app/opbeans/tasks.py", "filename": "opbeans/tasks.py", "module": "opbeans.tasks", "function": "update_stats", "lineno": 22, "library_frame": false, "pre_context": [" elasticapm.label(a=\"x\", b=\"y\")", " elasticapm.set_custom_context({\"a\": \"x\", \"b\": \"y\"})"], "context_line": " cache.set(utils.stats.cache_key, utils.stats(), 60)", "post_context": ["", ""]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "__protected_call__", "lineno": 734, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "trace_task", "lineno": 451, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "fast_trace_task", "lineno": 649, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "workloop", "lineno": 362, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "__call__", "lineno": 292, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "run", "lineno": 114, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "_bootstrap", "lineno": 327, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/popen_fork.py", "filename": "billiard/popen_fork.py", "module": "billiard.popen_fork", "function": "_launch", "lineno": 79, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/popen_fork.py", "filename": "billiard/popen_fork.py", "module": "billiard.popen_fork", "function": "__init__", "lineno": 24, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/context.py", "filename": "billiard/context.py", "module": "billiard.context", "function": "_Popen", "lineno": 333, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/process.py", "filename": "billiard/process.py", "module": "billiard.process", "function": "start", "lineno": 124, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "_create_worker_process", "lineno": 1158, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/asynpool.py", "filename": "celery/concurrency/asynpool.py", "module": "celery.concurrency.asynpool", "function": "_create_worker_process", "lineno": 480, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/billiard/pool.py", "filename": "billiard/pool.py", "module": "billiard.pool", "function": "__init__", "lineno": 1046, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/asynpool.py", "filename": "celery/concurrency/asynpool.py", "module": "celery.concurrency.asynpool", "function": "__init__", "lineno": 463, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/prefork.py", "filename": "celery/concurrency/prefork.py", "module": "celery.concurrency.prefork", "function": "on_start", "lineno": 109, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/concurrency/base.py", "filename": "celery/concurrency/base.py", "module": "celery.concurrency.base", "function": "start", "lineno": 129, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bootsteps.py", "filename": "celery/bootsteps.py", "module": "celery.bootsteps", "function": "start", "lineno": 365, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bootsteps.py", "filename": "celery/bootsteps.py", "module": "celery.bootsteps", "function": "start", "lineno": 116, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/worker/worker.py", "filename": "celery/worker/worker.py", "module": "celery.worker.worker", "function": "start", "lineno": 203, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/worker.py", "filename": "celery/bin/worker.py", "module": "celery.bin.worker", "function": "worker", "lineno": 351, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/base.py", "filename": "celery/bin/base.py", "module": "celery.bin.base", "function": "caller", "lineno": 134, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/decorators.py", "filename": "click/decorators.py", "module": "click.decorators", "function": "new_func", "lineno": 26, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 754, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 1395, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "invoke", "lineno": 1659, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "main", "lineno": 1053, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/click/core.py", "filename": "click/core.py", "module": "click.core", "function": "__call__", "lineno": 1128, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/bin/celery.py", "filename": "celery/bin/celery.py", "module": "celery.bin.celery", "function": "main", "lineno": 213, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/__main__.py", "filename": "celery/__main__.py", "module": "celery.__main__", "function": "main", "lineno": 15, "library_frame": true}, {"abs_path": "/app/venv/bin/celery", "filename": "bin/celery", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(main())", "post_context": []}]}} {"span": {"id": "89108b7c1bf6ed96", "transaction_id": "9606016477b12912", "trace_id": "0702ad0218922d52f0de95e24cc5a8e4", "parent_id": "9606016477b12912", "name": "SELECT FROM opbeans_product", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055512667220, "duration": 4.207957972539589, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT COUNT(*) AS \"__count\" FROM \"opbeans_product\""}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}}} @@ -578,14 +547,12 @@ {"span": {"id": "4666d72f409ea230", "transaction_id": "84413403f1f9208a", "trace_id": "c916f66545253be3050ad1388fa9902b", "parent_id": "84413403f1f9208a", "name": "GET", "type": "db", "subtype": "redis", "action": "query", "timestamp": 1646055517668149, "duration": 3.0940000142436475, "outcome": "success", "sample_rate": 1.0, "context": {"destination": {"port": 6379, "address": "redis", "service": {"resource": "redis", "name": "", "type": ""}}}}} {"span": {"id": "353938e7933b0658", "transaction_id": "84413403f1f9208a", "trace_id": "c916f66545253be3050ad1388fa9902b", "parent_id": "84413403f1f9208a", "name": "Pipeline.execute", "type": "db", "subtype": "redis", "action": "query", "timestamp": 1646055517672999, "duration": 2.368041983572766, "outcome": "success", "sample_rate": 1.0, "context": {"destination": {"port": 6379, "address": "redis", "service": {"resource": "redis", "name": "", "type": ""}}}}} {"error": {"context": {"custom": {}}, "id": "5dc69c027c7ba543566f3d23dc5854ef", "exception": {"message": "AssertionError: Bad luck!", "type": "AssertionError", "module": "builtins", "stacktrace": [{"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "trace_task", "lineno": 451, "library_frame": true, "vars": {"uuid": "ef72f258-5b92-4e4e-b1b8-83bbae9132c8", "args": [], "kwargs": {}, "request": {"lang": "py", "task": "opbeans.tasks.update_stats", "id": "ef72f258-5b92-4e4e-b1b8-83bbae9132c8", "shadow": null, "eta": null, "expires": null, "group": null, "group_index": null, "retries": 0, "timelimit": [null, null], "": "(18 more elements)"}, "R": null, "I": null, "T": null, "Rstr": null, "retval": null, "state": null, "task_request": "", "_does_info": true, "app": "", "deduplicate_successful_tasks": false, "eager": false, "fun": "<@task: opbeans.tasks.update_stats of opbeans at 0x401fc59ab0>", "hostname": "celery@88abe6e3ded4", "inherit_parent_priority": false, "loader_cleanup": ">", "loader_task_init": ">", "monotonic": "", "name": "opbeans.tasks.update_stats", "on_error": ".on_error at 0x4020479a20>", "pid": 156, "pop_request": ">", "pop_task": ">", "postrun_receivers": [[["elasticapm-tracing-postrun", 274907146592], ".end_transaction at 0x401fc0f130>"], [[275412920512, 274907146592], ""]], "prerun_receivers": [[["elasticapm-tracing-prerun", 274907146592], ".begin_transaction at 0x401fa8d990>"], [[275412920368, 274907146592], ""]], "publish_result": true, "push_request": ">", "push_task": ">", "resultrepr_maxsize": 1024, "signature": "", "success_receivers": [], "task": "<@task: opbeans.tasks.update_stats of opbeans at 0x401fc59ab0>", "task_after_return": null, "task_before_start": null, "task_on_success": null, "trace_ok_t": "", "track_started": false}, "pre_context": [" task_before_start(uuid, args, kwargs)", ""], "context_line": " R = retval = fun(*args, **kwargs)", "post_context": [" state = SUCCESS", " except Reject as exc:"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/celery/app/trace.py", "filename": "celery/app/trace.py", "module": "celery.app.trace", "function": "__protected_call__", "lineno": 734, "library_frame": true, "vars": {"self": "<@task: opbeans.tasks.update_stats of opbeans at 0x401fc59ab0>", "args": [], "kwargs": {}, "stack": "", "req": ""}, "pre_context": [" len(stack) == 1 and not req.called_directly:", " req._protected = 1"], "context_line": " return self.run(*args, **kwargs)", "post_context": [" return orig(self, *args, **kwargs)", " BaseTask.__call__ = __protected_call__"]}, {"abs_path": "/app/opbeans/tasks.py", "filename": "opbeans/tasks.py", "module": "opbeans.tasks", "function": "update_stats", "lineno": 19, "library_frame": false, "vars": {"dict_for_truncation": {"0": 0, "1": 1, "2": 2, "3": 3, "4": 4, "5": 5, "6": 6, "7": 7, "8": 8, "9": 9, "": "(490 more elements)"}}, "pre_context": [" if random.random() > 0.8:", " dict_for_truncation = {k: k for k in range(500)}"], "context_line": " assert False, \"Bad luck!\"", "post_context": [" elasticapm.label(a=\"x\", b=\"y\")", " elasticapm.set_custom_context({\"a\": \"x\", \"b\": \"y\"})"]}], "handled": false}, "culprit": "opbeans.tasks.update_stats", "timestamp": 1646055517676129, "trace_id": "c916f66545253be3050ad1388fa9902b", "parent_id": "84413403f1f9208a", "transaction_id": "84413403f1f9208a", "transaction": {"sampled": true, "type": "celery"}}} -{"metadata": {"service": {"name": "opbeans-python", "environment": "production", "version": "None", "agent": {"name": "python", "version": "6.7.2"}, "language": {"name": "python", "version": "3.10.2"}, "runtime": {"name": "CPython", "version": "3.10.2"}, "framework": {"name": "django", "version": "3.2.11"}}, "process": {"pid": 113, "ppid": 100, "argv": ["/app/venv/bin/celery", "-A", "opbeans", "worker", "--concurrency=1", "-l", "info"], "title": null}, "system": {"hostname": "88abe6e3ded4", "architecture": "x86_64", "platform": "linux"}}} {"metricset": {"samples": {"system.cpu.total.norm.pct": {"value": 0.823990558880553, "type": "gauge"}, "system.memory.actual.free": {"value": 7535828992, "type": "gauge"}, "system.memory.total": {"value": 12544401408, "type": "gauge"}, "system.process.cpu.total.norm.pct": {"value": 0.0, "type": "gauge"}, "system.process.memory.size": {"value": 0, "type": "gauge"}, "system.process.memory.rss.bytes": {"value": 0, "type": "gauge"}}, "timestamp": 1646055509451923}} {"metricset": {"samples": {"prometheus.metrics.python_gc_objects_collected": {"value": 1536}, "prometheus.metrics.python_gc_objects_uncollectable": {"value": 0}, "prometheus.metrics.python_gc_collections": {"value": 268}}, "timestamp": 1646055509458935, "tags": {"generation": "0"}}} {"metricset": {"samples": {"prometheus.metrics.python_gc_objects_collected": {"value": 41}, "prometheus.metrics.python_gc_objects_uncollectable": {"value": 0}, "prometheus.metrics.python_gc_collections": {"value": 3}}, "timestamp": 1646055509458935, "tags": {"generation": "2"}}} {"metricset": {"samples": {"prometheus.metrics.process_cpu_seconds": {"value": 0.0}, "prometheus.metrics.opbeans_python_line_items": {"value": 0.0}, "prometheus.metrics.process_virtual_memory_bytes": {"value": 0.0, "type": "gauge"}, "prometheus.metrics.process_resident_memory_bytes": {"value": 0.0, "type": "gauge"}, "prometheus.metrics.process_start_time_seconds": {"value": 1645917773.0, "type": "gauge"}, "prometheus.metrics.process_open_fds": {"value": 30, "type": "gauge"}, "prometheus.metrics.process_max_fds": {"value": 1048576.0, "type": "gauge"}, "prometheus.metrics.opbeans_python_orders.sum": {"value": 0.0}, "prometheus.metrics.opbeans_python_orders.count": {"value": 0.0}}, "timestamp": 1646055509458935}} {"metricset": {"samples": {"prometheus.metrics.python_info": {"value": 1, "type": "gauge"}}, "timestamp": 1646055509458935, "tags": {"implementation": "CPython", "major": "3", "minor": "10", "patchlevel": "2", "version": "3.10.2"}}} {"metricset": {"samples": {"prometheus.metrics.django_migrations_unapplied_total": {"value": 0.0, "type": "gauge"}, "prometheus.metrics.django_migrations_applied_total": {"value": 20.0, "type": "gauge"}}, "timestamp": 1646055509458935, "tags": {"connection": "default"}}} -{"metadata": {"service": {"name": "opbeans-python", "environment": "production", "version": "None", "agent": {"name": "python", "version": "6.7.2"}, "language": {"name": "python", "version": "3.10.2"}, "runtime": {"name": "CPython", "version": "3.10.2"}, "framework": {"name": "django", "version": "3.2.11"}}, "process": {"pid": 123, "ppid": 109, "argv": ["/app/venv/bin/gunicorn", "--workers", "4", "--bind", "0.0.0.0:3000", "opbeans.wsgi"], "title": null}, "system": {"hostname": "88abe6e3ded4", "architecture": "x86_64", "platform": "linux"}}} {"metricset": {"samples": {"system.cpu.total.norm.pct": {"value": 0.8261236191921747, "type": "gauge"}, "system.memory.actual.free": {"value": 7547707392, "type": "gauge"}, "system.memory.total": {"value": 12544401408, "type": "gauge"}, "system.process.cpu.total.norm.pct": {"value": 0.0, "type": "gauge"}, "system.process.memory.size": {"value": 0, "type": "gauge"}, "system.process.memory.rss.bytes": {"value": 0, "type": "gauge"}}, "timestamp": 1646055509031003}} {"metricset": {"samples": {"span.self_time.sum.us": {"value": 352757}, "span.self_time.count": {"value": 1}}, "timestamp": 1646055509031278, "tags": {}, "span": {"type": "code", "subtype": "custom"}, "transaction": {"name": "GET opbeans.views.home", "type": "request"}}} {"metricset": {"samples": {"span.self_time.sum.us": {"value": 14124}, "span.self_time.count": {"value": 1}}, "timestamp": 1646055509031278, "tags": {}, "span": {"type": "template", "subtype": "django"}, "transaction": {"name": "GET opbeans.views.home", "type": "request"}}} @@ -629,7 +596,6 @@ {"span": {"id": "669a09f88b39ae66", "transaction_id": "f5b7c981866aebc5", "trace_id": "14442fb97a06856c86fd2cdcdaee6b9e", "parent_id": "f5b7c981866aebc5", "name": "SELECT FROM opbeans_order", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055518762686, "duration": 1.0508749983273447, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT \"opbeans_order\".\"id\", \"opbeans_order\".\"customer_id\", \"opbeans_order\".\"created_at\" FROM \"opbeans_order\" WHERE \"opbeans_order\".\"id\" = %s LIMIT 21"}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}}} {"span": {"id": "93590f1473105355", "transaction_id": "f5b7c981866aebc5", "trace_id": "14442fb97a06856c86fd2cdcdaee6b9e", "parent_id": "f5b7c981866aebc5", "name": "SELECT FROM opbeans_orderline", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055518772903, "duration": 1.089416997274384, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT \"opbeans_orderline\".\"product_id\", \"opbeans_orderline\".\"amount\", \"opbeans_product\".\"sku\", \"opbeans_product\".\"name\", \"opbeans_product\".\"description\", \"opbeans_product\".\"product_type_id\", \"opbeans_product\".\"stock\", \"opbeans_product\".\"cost\", \"opbeans_product\".\"selling_price\" FROM \"opbeans_orderline\" INNER JOIN \"opbeans_product\" ON (\"opbeans_orderline\".\"product_id\" = \"opbeans_product\".\"id\") WHERE \"opbeans_orderline\".\"order_id\" = %s"}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}}} {"transaction": {"id": "f5b7c981866aebc5", "trace_id": "14442fb97a06856c86fd2cdcdaee6b9e", "name": "GET opbeans.views.order", "type": "request", "duration": 42.11733301053755, "result": "HTTP 2xx", "timestamp": 1646055518744659, "outcome": "success", "sampled": true, "span_count": {"started": 2, "dropped": 0}, "sample_rate": 1.0, "parent_id": "d4535f35851a305c", "context": {"request": {"env": {"REMOTE_ADDR": "172.23.0.12", "SERVER_NAME": "0.0.0.0", "SERVER_PORT": "3000"}, "method": "GET", "socket": {"remote_address": "172.23.0.12"}, "cookies": {}, "headers": {"connection": "close", "host": "opbeans-python:3000", "user-agent": "http.rb/5.0.4", "traceparent": "00-14442fb97a06856c86fd2cdcdaee6b9e-d4535f35851a305c-01", "tracestate": "es=s:1.0", "elastic-apm-traceparent": "00-14442fb97a06856c86fd2cdcdaee6b9e-d4535f35851a305c-01"}, "url": {"full": "http://opbeans-python:3000/api/orders/114", "protocol": "http:", "hostname": "opbeans-python", "pathname": "/api/orders/114", "port": "3000"}}, "response": {"status_code": 200, "headers": {"Content-Type": "application/json", "X-Frame-Options": "DENY", "Content-Length": "330", "Vary": "Cookie", "X-Content-Type-Options": "nosniff", "Referrer-Policy": "same-origin"}}, "user": {"is_authenticated": true, "id": 6, "username": "tannermonica", "email": "tannermonica@burton-davis.com"}, "tags": {"request_id": "eda37e8f-338e-4850-a946-6ebdc55edd18", "customer_tier": "$$$$"}}}} -{"metadata": {"service": {"name": "opbeans-python", "environment": "production", "version": "None", "agent": {"name": "python", "version": "6.7.2"}, "language": {"name": "python", "version": "3.10.2"}, "runtime": {"name": "CPython", "version": "3.10.2"}, "framework": {"name": "django", "version": "3.2.11"}}, "process": {"pid": 123, "ppid": 109, "argv": ["/app/venv/bin/gunicorn", "--workers", "4", "--bind", "0.0.0.0:3000", "opbeans.wsgi"], "title": null}, "system": {"hostname": "88abe6e3ded4", "architecture": "x86_64", "platform": "linux"}}} {"span": {"id": "194965a439be24ac", "transaction_id": "c8a95b98dde85f4a", "trace_id": "6b6ef5c9d542ea2ad14a65f2e9daa645", "parent_id": "c8a95b98dde85f4a", "name": "GET opbeans-go:3000", "type": "external", "subtype": "http", "action": null, "timestamp": 1646055519319440, "duration": 703.2797510037199, "outcome": "success", "sample_rate": 1.0, "context": {"http": {"url": "http://opbeans-go:3000/api/types/2", "status_code": 200}, "destination": {"service": {"resource": "opbeans-go:3000", "name": "", "type": ""}}}, "stacktrace": [{"abs_path": "/app/venv/lib/python3.10/site-packages/requests/sessions.py", "filename": "requests/sessions.py", "module": "requests.sessions", "function": "request", "lineno": 529, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/requests/api.py", "filename": "requests/api.py", "module": "requests.api", "function": "request", "lineno": 61, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/requests/api.py", "filename": "requests/api.py", "module": "requests.api", "function": "get", "lineno": 75, "library_frame": true}, {"abs_path": "/app/opbeans/views.py", "filename": "opbeans/views.py", "module": "opbeans.views", "function": "wrapped_view", "lineno": 57, "library_frame": false, "pre_context": [" logger.info(\"dt_ping_pong_proxy\", url=url)", " try:"], "context_line": " other_response = requests.get(url, timeout=15)", "post_context": [" except requests.exceptions.Timeout:", " logger.error(\"dt_ping_pong_timeout\", service=other_service)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "_get_response", "lineno": 181, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/whitenoise/middleware.py", "filename": "whitenoise/middleware.py", "module": "whitenoise.middleware", "function": "__call__", "lineno": 60, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "get_response", "lineno": 130, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/wsgi.py", "filename": "django/core/handlers/wsgi.py", "module": "django.core.handlers.wsgi", "function": "__call__", "lineno": 133, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle_request", "lineno": 179, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle", "lineno": 136, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "accept", "lineno": 31, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run_for_one", "lineno": 69, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run", "lineno": 125, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/base.py", "filename": "gunicorn/workers/base.py", "module": "gunicorn.workers.base", "function": "init_process", "lineno": 142, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_worker", "lineno": 589, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_workers", "lineno": 622, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "manage_workers", "lineno": 551, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "run", "lineno": 202, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 72, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 231, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/wsgiapp.py", "filename": "gunicorn/app/wsgiapp.py", "module": "gunicorn.app.wsgiapp", "function": "run", "lineno": 67, "library_frame": true}, {"abs_path": "/app/venv/bin/gunicorn", "filename": "bin/gunicorn", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(run())", "post_context": []}]}} {"transaction": {"id": "c8a95b98dde85f4a", "trace_id": "6b6ef5c9d542ea2ad14a65f2e9daa645", "name": "GET opbeans.views.product_type", "type": "request", "duration": 756.9356259773485, "result": "HTTP 2xx", "timestamp": 1646055519287796, "outcome": "success", "sampled": true, "span_count": {"started": 1, "dropped": 0}, "sample_rate": 1.0, "parent_id": "3923e3d412d858bd", "context": {"request": {"env": {"REMOTE_ADDR": "172.23.0.12", "SERVER_NAME": "0.0.0.0", "SERVER_PORT": "3000"}, "method": "GET", "socket": {"remote_address": "172.23.0.12"}, "cookies": {}, "headers": {"connection": "close", "host": "opbeans-python:3000", "user-agent": "http.rb/5.0.4", "traceparent": "00-6b6ef5c9d542ea2ad14a65f2e9daa645-3923e3d412d858bd-01", "tracestate": "es=s:1.0", "elastic-apm-traceparent": "00-6b6ef5c9d542ea2ad14a65f2e9daa645-3923e3d412d858bd-01"}, "url": {"full": "http://opbeans-python:3000/api/types/2", "protocol": "http:", "hostname": "opbeans-python", "pathname": "/api/types/2", "port": "3000"}}, "response": {"status_code": 200, "headers": {"Content-Type": "application/json; charset=utf-8", "X-Frame-Options": "DENY", "Content-Length": "117", "Vary": "Cookie", "X-Content-Type-Options": "nosniff", "Referrer-Policy": "same-origin"}}, "user": {"is_authenticated": true, "id": 7, "username": "aliciarichardson", "email": "aliciarichardson@carter-moore.com"}, "tags": {"request_id": "65c1657f-ba84-4794-9619-439f830b24bf", "customer_tier": "$"}}}} {"span": {"id": "6a8bf962ea41d571", "transaction_id": "4c1c0eeebe7bb077", "trace_id": "acc9547e5579efa62a94a5c1f3faae97", "parent_id": "4c1c0eeebe7bb077", "name": "SELECT FROM opbeans_order", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055520052086, "duration": 2.2897919989190996, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT \"opbeans_order\".\"id\", \"opbeans_order\".\"customer_id\", \"opbeans_order\".\"created_at\" FROM \"opbeans_order\" WHERE \"opbeans_order\".\"id\" = %s LIMIT 21"}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}}} @@ -641,7 +607,6 @@ {"transaction": {"id": "bd255f8688bfe873", "trace_id": "5fb6699d078fa3c2af5751d8bd1d0fcb", "name": "GET opbeans.views.customers", "type": "request", "duration": 83.93641700968146, "result": "HTTP 2xx", "timestamp": 1646055520340915, "outcome": "success", "sampled": true, "span_count": {"started": 1, "dropped": 0}, "sample_rate": 1.0, "context": {"request": {"env": {"REMOTE_ADDR": "172.23.0.14", "SERVER_NAME": "0.0.0.0", "SERVER_PORT": "3000"}, "method": "GET", "socket": {"remote_address": "172.23.0.14"}, "cookies": {}, "headers": {"accept": "*/*", "accept-encoding": "gzip, deflate", "host": "opbeans-python:3000", "user-agent": "Python/3.7 aiohttp/3.3.2"}, "url": {"full": "http://opbeans-python:3000/api/customers", "protocol": "http:", "hostname": "opbeans-python", "pathname": "/api/customers", "port": "3000"}}, "response": {"status_code": 200, "headers": {"Content-Type": "application/json", "X-Frame-Options": "DENY", "Content-Length": "203686", "Vary": "Cookie", "X-Content-Type-Options": "nosniff", "Referrer-Policy": "same-origin"}}, "user": {"is_authenticated": true, "id": 13, "username": "michelle74", "email": "michelle74@barnes.net"}, "tags": {"request_id": "23fd1229-5113-48fd-a5ac-51f0e3cf8e5f", "customer_tier": "$$$"}}}} {"error": {"context": {"tags": {"request_id": "30b4a186-edb1-4ff1-ac26-973786ecfc9b", "customer_tier": "$$$$"}, "custom": {}}, "id": "e77942eea4332cff562fbfa78e84878a", "log": {"level": "error", "logger_name": "__root__", "message": "About to blow up!", "param_message": "About to blow up!", "stacktrace": [{"abs_path": "/app/venv/lib/python3.10/site-packages/elasticapm/contrib/django/client.py", "filename": "elasticapm/contrib/django/client.py", "module": "elasticapm.contrib.django.client", "function": "capture", "lineno": 183, "library_frame": true, "vars": {"self": "", "event_type": "Message", "request": null, "kwargs": {"message": "About to blow up!", "param_message": null, "context": {}}, "context": {}, "is_http_request": false, "__class__": ""}, "pre_context": [" context[\"user\"] = self.get_user_info(request)", ""], "context_line": " result = super(DjangoClient, self).capture(event_type, **kwargs)", "post_context": ["", " if is_http_request:"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/elasticapm/base.py", "filename": "elasticapm/base.py", "module": "elasticapm.base", "function": "capture_message", "lineno": 259, "library_frame": true, "vars": {"self": "", "message": "About to blow up!", "param_message": null, "kwargs": {}}, "pre_context": [" >>> client.capture_message('My event just happened!')", " \"\"\""], "context_line": " return self.capture(\"Message\", message=message, param_message=param_message, **kwargs)", "post_context": ["", " def capture_exception(self, exc_info=None, handled=True, **kwargs):"]}, {"abs_path": "/app/opbeans/views.py", "filename": "opbeans/views.py", "module": "opbeans.views", "function": "oopsie", "lineno": 296, "library_frame": false, "vars": {"request": ""}, "pre_context": ["", "def oopsie(request):"], "context_line": " client.capture_message('About to blow up!')", "post_context": [" try:", " 1 / 0"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "_get_response", "lineno": 181, "library_frame": true, "vars": {"self": "", "request": "", "response": null, "callback": "", "callback_args": [], "callback_kwargs": {}, "middleware_method": ">", "wrapped_callback": ""}, "pre_context": [" wrapped_callback = async_to_sync(wrapped_callback)", " try:"], "context_line": " response = wrapped_callback(request, *callback_args, **callback_kwargs)", "post_context": [" except Exception as e:", " response = self.process_exception_by_middleware(e, request)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ">"}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true, "vars": {"self": "", "request": "", "response": null}, "pre_context": [" if hasattr(self, 'process_request'):", " response = self.process_request(request)"], "context_line": " response = response or self.get_response(request)", "post_context": [" if hasattr(self, 'process_response'):", " response = self.process_response(request, response)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ""}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true, "vars": {"self": "", "request": "", "response": null}, "pre_context": [" if hasattr(self, 'process_request'):", " response = self.process_request(request)"], "context_line": " response = response or self.get_response(request)", "post_context": [" if hasattr(self, 'process_response'):", " response = self.process_response(request, response)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ""}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true, "vars": {"self": "", "request": "", "response": null}, "pre_context": [" if hasattr(self, 'process_request'):", " response = self.process_request(request)"], "context_line": " response = response or self.get_response(request)", "post_context": [" if hasattr(self, 'process_response'):", " response = self.process_response(request, response)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ""}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ".middleware at 0x401fa23c70>"}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true, "vars": {"self": "", "request": "", "response": null}, "pre_context": [" if hasattr(self, 'process_request'):", " response = self.process_request(request)"], "context_line": " response = response or self.get_response(request)", "post_context": [" if hasattr(self, 'process_response'):", " response = self.process_response(request, response)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ""}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true, "vars": {"self": "", "request": "", "response": null}, "pre_context": [" if hasattr(self, 'process_request'):", " response = self.process_request(request)"], "context_line": " response = response or self.get_response(request)", "post_context": [" if hasattr(self, 'process_response'):", " response = self.process_response(request, response)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ""}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true, "vars": {"self": "", "request": "", "response": null}, "pre_context": [" if hasattr(self, 'process_request'):", " response = self.process_request(request)"], "context_line": " response = response or self.get_response(request)", "post_context": [" if hasattr(self, 'process_response'):", " response = self.process_response(request, response)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ""}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true, "vars": {"self": "", "request": "", "response": null}, "pre_context": [" if hasattr(self, 'process_request'):", " response = self.process_request(request)"], "context_line": " response = response or self.get_response(request)", "post_context": [" if hasattr(self, 'process_response'):", " response = self.process_response(request, response)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ""}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/whitenoise/middleware.py", "filename": "whitenoise/middleware.py", "module": "whitenoise.middleware", "function": "__call__", "lineno": 60, "library_frame": true, "vars": {"self": "", "request": "", "response": null}, "pre_context": [" response = self.process_request(request)", " if response is None:"], "context_line": " response = self.get_response(request)", "post_context": [" return response", ""]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ""}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true, "vars": {"self": "", "request": "", "response": null}, "pre_context": [" if hasattr(self, 'process_request'):", " response = self.process_request(request)"], "context_line": " response = response or self.get_response(request)", "post_context": [" if hasattr(self, 'process_response'):", " response = self.process_response(request, response)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ""}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ".middleware at 0x401fa7f6d0>"}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true, "vars": {"self": "", "request": "", "response": null}, "pre_context": [" if hasattr(self, 'process_request'):", " response = self.process_request(request)"], "context_line": " response = response or self.get_response(request)", "post_context": [" if hasattr(self, 'process_response'):", " response = self.process_response(request, response)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ""}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true, "vars": {"self": "", "request": "", "response": null}, "pre_context": [" if hasattr(self, 'process_request'):", " response = self.process_request(request)"], "context_line": " response = response or self.get_response(request)", "post_context": [" if hasattr(self, 'process_response'):", " response = self.process_response(request, response)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ""}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true, "vars": {"self": "", "request": "", "response": null}, "pre_context": [" if hasattr(self, 'process_request'):", " response = self.process_request(request)"], "context_line": " response = response or self.get_response(request)", "post_context": [" if hasattr(self, 'process_response'):", " response = self.process_response(request, response)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ""}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "get_response", "lineno": 130, "library_frame": true, "vars": {"self": "", "request": ""}, "pre_context": [" # Setup default url resolver for this thread", " set_urlconf(settings.ROOT_URLCONF)"], "context_line": " response = self._middleware_chain(request)", "post_context": [" response._resource_closers.append(request.close)", " if response.status_code >= 400:"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/wsgi.py", "filename": "django/core/handlers/wsgi.py", "module": "django.core.handlers.wsgi", "function": "__call__", "lineno": 133, "library_frame": true, "vars": {"self": "", "environ": {"wsgi.errors": "", "wsgi.version": [1, 0], "wsgi.multithread": false, "wsgi.multiprocess": true, "wsgi.run_once": false, "wsgi.file_wrapper": "", "wsgi.input_terminated": true, "SERVER_SOFTWARE": "gunicorn/20.1.0", "wsgi.input": "", "gunicorn.socket": "", "": "(15 more elements)"}, "start_response": ">", "request": ""}, "pre_context": [" signals.request_started.send(sender=self.__class__, environ=environ)", " request = self.request_class(environ)"], "context_line": " response = self.get_response(request)", "post_context": ["", " response._handler_class = self.__class__"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle_request", "lineno": 179, "library_frame": true, "vars": {"self": "", "listener": "", "req": "", "client": "", "addr": ["172.23.0.14", 43212], "environ": {"wsgi.errors": "", "wsgi.version": [1, 0], "wsgi.multithread": false, "wsgi.multiprocess": true, "wsgi.run_once": false, "wsgi.file_wrapper": "", "wsgi.input_terminated": true, "SERVER_SOFTWARE": "gunicorn/20.1.0", "wsgi.input": "", "gunicorn.socket": "", "": "(15 more elements)"}, "resp": "", "request_start": "datetime.datetime(2022, 2, 28, 13, 38, 40, 441939)"}, "pre_context": [" self.log.info(\"Autorestarting worker after current request.\")", " self.alive = False"], "context_line": " respiter = self.wsgi(environ, resp.start_response)", "post_context": [" try:", " if isinstance(respiter, environ['wsgi.file_wrapper']):"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle", "lineno": 136, "library_frame": true, "vars": {"self": "", "listener": "", "client": "", "addr": ["172.23.0.14", 43212], "req": "", "parser": ""}, "pre_context": [" parser = http.RequestParser(self.cfg, client, addr)", " req = next(parser)"], "context_line": " self.handle_request(listener, req, client, addr)", "post_context": [" except http.errors.NoMoreData as e:", " self.log.debug(\"Ignored premature client disconnection. %s\", e)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "accept", "lineno": 31, "library_frame": true, "vars": {"self": "", "listener": "", "client": "", "addr": ["172.23.0.14", 43212]}, "pre_context": [" client.setblocking(1)", " util.close_on_exec(client)"], "context_line": " self.handle(listener, client, addr)", "post_context": ["", " def wait(self, timeout):"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run_for_one", "lineno": 69, "library_frame": true, "vars": {"self": "", "timeout": 15.0, "listener": ""}, "pre_context": [" # workers to come give us some love.", " try:"], "context_line": " self.accept(listener)", "post_context": [" # Keep processing clients until no one is waiting. This", " # prevents the need to select() for every client that we"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run", "lineno": 125, "library_frame": true, "vars": {"self": "", "timeout": 15.0, "s": ""}, "pre_context": [" self.run_for_multiple(timeout)", " else:"], "context_line": " self.run_for_one(timeout)", "post_context": ["", " def handle(self, listener, client, addr):"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/base.py", "filename": "gunicorn/workers/base.py", "module": "gunicorn.workers.base", "function": "init_process", "lineno": 142, "library_frame": true, "vars": {"p": 7, "s": "", "self": ""}, "pre_context": [" # Enter main run loop", " self.booted = True"], "context_line": " self.run()", "post_context": ["", " def load_wsgi(self):"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_worker", "lineno": 589, "library_frame": true, "vars": {"self": "", "worker": "", "pid": 0, "sibling": ""}, "pre_context": [" self.log.info(\"Booting worker with pid: %s\", worker.pid)", " self.cfg.post_fork(self, worker)"], "context_line": " worker.init_process()", "post_context": [" sys.exit(0)", " except SystemExit:"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_workers", "lineno": 622, "library_frame": true, "vars": {"self": "", "_": 2}, "pre_context": ["", " for _ in range(self.num_workers - len(self.WORKERS)):"], "context_line": " self.spawn_worker()", "post_context": [" time.sleep(0.1 * random.random())", ""]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "manage_workers", "lineno": 551, "library_frame": true, "vars": {"self": ""}, "pre_context": [" \"\"\"", " if len(self.WORKERS) < self.num_workers:"], "context_line": " self.spawn_workers()", "post_context": ["", " workers = self.WORKERS.items()"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "run", "lineno": 202, "library_frame": true, "vars": {"self": ""}, "pre_context": ["", " try:"], "context_line": " self.manage_workers()", "post_context": ["", " while True:"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 72, "library_frame": true, "vars": {"self": ""}, "pre_context": [" def run(self):", " try:"], "context_line": " Arbiter(self).run()", "post_context": [" except RuntimeError as e:", " print(\"\\nError: %s\\n\" % e, file=sys.stderr)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 231, "library_frame": true, "vars": {"self": "", "__class__": ""}, "pre_context": [" sys.path.insert(0, pythonpath)", ""], "context_line": " super().run()", "post_context": []}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/wsgiapp.py", "filename": "gunicorn/app/wsgiapp.py", "module": "gunicorn.app.wsgiapp", "function": "run", "lineno": 67, "library_frame": true, "vars": {"WSGIApplication": ""}, "pre_context": [" \"\"\"", " from gunicorn.app.wsgiapp import WSGIApplication"], "context_line": " WSGIApplication(\"%(prog)s [OPTIONS] [APP_MODULE]\").run()", "post_context": ["", ""]}, {"abs_path": "/app/venv/bin/gunicorn", "filename": "bin/gunicorn", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "vars": {"__name__": "__main__", "__doc__": null, "__package__": null, "__loader__": "<_frozen_importlib_external.SourceFileLoader object at 0x40020b0ca0>", "__spec__": null, "__annotations__": {}, "__builtins__": "", "__file__": "/app/venv/bin/gunicorn", "__cached__": null, "re": "", "sys": "", "run": ""}, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(run())", "post_context": []}]}, "culprit": "__main__.", "timestamp": 1646055520447456, "trace_id": "7ebcfe0ca8550b7adca29b866855576e", "parent_id": "f47d7d0b127d4e46", "transaction_id": "f47d7d0b127d4e46", "transaction": {"sampled": true, "type": "request"}}} {"error": {"context": {"request": {"env": {"REMOTE_ADDR": "172.23.0.14", "SERVER_NAME": "0.0.0.0", "SERVER_PORT": "3000"}, "method": "GET", "socket": {"remote_address": "172.23.0.14"}, "cookies": {}, "headers": {"accept": "*/*", "accept-encoding": "gzip, deflate", "host": "opbeans-python:3000", "user-agent": "Python/3.7 aiohttp/3.3.2"}, "url": {"full": "http://opbeans-python:3000/oopsie", "protocol": "http:", "hostname": "opbeans-python", "pathname": "/oopsie", "port": "3000"}}, "user": {"is_authenticated": true, "id": 9, "username": "timothy77", "email": "timothy77@ward.com"}, "tags": {"request_id": "30b4a186-edb1-4ff1-ac26-973786ecfc9b", "customer_tier": "$$$$"}, "custom": {}}, "id": "305426626eb89e19f531ef2510acd446", "exception": {"message": "AssertionError: oh no", "type": "AssertionError", "module": "builtins", "stacktrace": [{"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ">", "exc": "AssertionError('oh no')"}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "_get_response", "lineno": 181, "library_frame": true, "vars": {"self": "", "request": "", "response": null, "callback": "", "callback_args": [], "callback_kwargs": {}, "middleware_method": ">", "wrapped_callback": ""}, "pre_context": [" wrapped_callback = async_to_sync(wrapped_callback)", " try:"], "context_line": " response = wrapped_callback(request, *callback_args, **callback_kwargs)", "post_context": [" except Exception as e:", " response = self.process_exception_by_middleware(e, request)"]}, {"abs_path": "/app/opbeans/views.py", "filename": "opbeans/views.py", "module": "opbeans.views", "function": "oopsie", "lineno": 303, "library_frame": false, "vars": {"request": ""}, "pre_context": [" 1 + \"a\"", " except TypeError:"], "context_line": " raise AssertionError(\"oh no\")", "post_context": ["", ""]}], "cause": [{"message": "TypeError: unsupported operand type(s) for +: 'int' and 'str'", "type": "TypeError", "module": "builtins", "stacktrace": [{"abs_path": "/app/opbeans/views.py", "filename": "opbeans/views.py", "module": "opbeans.views", "function": "oopsie", "lineno": 301, "library_frame": false, "vars": {"request": ""}, "pre_context": [" except ZeroDivisionError:", " try:"], "context_line": " 1 + \"a\"", "post_context": [" except TypeError:", " raise AssertionError(\"oh no\")"]}], "cause": [{"message": "ZeroDivisionError: division by zero", "type": "ZeroDivisionError", "module": "builtins", "stacktrace": [{"abs_path": "/app/opbeans/views.py", "filename": "opbeans/views.py", "module": "opbeans.views", "function": "oopsie", "lineno": 298, "library_frame": false, "vars": {"request": ""}, "pre_context": [" client.capture_message('About to blow up!')", " try:"], "context_line": " 1 / 0", "post_context": [" except ZeroDivisionError:", " try:"]}]}]}], "handled": false}, "culprit": "opbeans.views.oopsie", "timestamp": 1646055520507052, "trace_id": "7ebcfe0ca8550b7adca29b866855576e", "parent_id": "f47d7d0b127d4e46", "transaction_id": "f47d7d0b127d4e46", "transaction": {"sampled": true, "type": "request"}}} -{"metadata": {"service": {"name": "opbeans-python", "environment": "production", "version": "None", "agent": {"name": "python", "version": "6.7.2"}, "language": {"name": "python", "version": "3.10.2"}, "runtime": {"name": "CPython", "version": "3.10.2"}, "framework": {"name": "django", "version": "3.2.11"}}, "process": {"pid": 119, "ppid": 109, "argv": ["/app/venv/bin/gunicorn", "--workers", "4", "--bind", "0.0.0.0:3000", "opbeans.wsgi"], "title": null}, "system": {"hostname": "88abe6e3ded4", "architecture": "x86_64", "platform": "linux"}}} {"span": {"id": "c29191af13b4ade7", "transaction_id": "49ac866cf502d8c3", "trace_id": "937a3bb02673e3350b7d9af16e4cf77c", "parent_id": "49ac866cf502d8c3", "name": "iterate_orders", "type": "code", "subtype": "custom", "action": null, "timestamp": 1646055513641965, "duration": 6192.755128024146, "outcome": "success", "sample_rate": 1.0, "stacktrace": [{"abs_path": "/app/opbeans/views.py", "filename": "opbeans/views.py", "module": "opbeans.views", "function": "orders", "lineno": 200, "library_frame": false, "pre_context": [" return post_order(request)", " order_list = list(m.Order.objects.all()[:1000])"], "context_line": " with elasticapm.capture_span(\"iterate_orders\"):", "post_context": [" orders = [", " {\"id\": order.id,"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/views/decorators/csrf.py", "filename": "django/views/decorators/csrf.py", "module": "django.views.decorators.csrf", "function": "wrapped_view", "lineno": 54, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "_get_response", "lineno": 181, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/whitenoise/middleware.py", "filename": "whitenoise/middleware.py", "module": "whitenoise.middleware", "function": "__call__", "lineno": 60, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "get_response", "lineno": 130, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/wsgi.py", "filename": "django/core/handlers/wsgi.py", "module": "django.core.handlers.wsgi", "function": "__call__", "lineno": 133, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle_request", "lineno": 179, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle", "lineno": 136, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "accept", "lineno": 31, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run_for_one", "lineno": 69, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run", "lineno": 125, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/base.py", "filename": "gunicorn/workers/base.py", "module": "gunicorn.workers.base", "function": "init_process", "lineno": 142, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_worker", "lineno": 589, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_workers", "lineno": 622, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "manage_workers", "lineno": 551, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "run", "lineno": 202, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 72, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 231, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/wsgiapp.py", "filename": "gunicorn/app/wsgiapp.py", "module": "gunicorn.app.wsgiapp", "function": "run", "lineno": 67, "library_frame": true}, {"abs_path": "/app/venv/bin/gunicorn", "filename": "bin/gunicorn", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(run())", "post_context": []}]}} {"transaction": {"id": "49ac866cf502d8c3", "trace_id": "937a3bb02673e3350b7d9af16e4cf77c", "name": "GET opbeans.views.orders", "type": "request", "duration": 6330.942920001689, "result": "HTTP 2xx", "timestamp": 1646055513549133, "outcome": "success", "sampled": true, "span_count": {"started": 50, "dropped": 952}, "dropped_spans_stats": [{"destination_service_resource": "postgresql", "outcome": "success", "duration": {"count": 952, "sum": {"us": 1313899}}}], "sample_rate": 1.0, "context": {"request": {"env": {"REMOTE_ADDR": "172.23.0.14", "SERVER_NAME": "0.0.0.0", "SERVER_PORT": "3000"}, "method": "GET", "socket": {"remote_address": "172.23.0.14"}, "cookies": {}, "headers": {"accept": "*/*", "accept-encoding": "gzip, deflate", "host": "opbeans-python:3000", "user-agent": "Python/3.7 aiohttp/3.3.2"}, "url": {"full": "http://opbeans-python:3000/api/orders", "protocol": "http:", "hostname": "opbeans-python", "pathname": "/api/orders", "port": "3000"}}, "response": {"status_code": 200, "headers": {"Content-Type": "application/json", "X-Frame-Options": "DENY", "Content-Length": "108580", "Vary": "Cookie", "X-Content-Type-Options": "nosniff", "Referrer-Policy": "same-origin"}}, "user": {"is_authenticated": true, "id": 9, "username": "timothy77", "email": "timothy77@ward.com"}, "tags": {"request_id": "60e0155c-51e3-47ab-bdbf-215ae5cdd0d4", "customer_tier": "$$$$"}}}} {"span": {"id": "e3d1241e0c03bad1", "transaction_id": "59103540bc340577", "trace_id": "6b6ef5c9d542ea2ad14a65f2e9daa645", "parent_id": "59103540bc340577", "name": "GET opbeans-node:3000", "type": "external", "subtype": "http", "action": null, "timestamp": 1646055519904339, "duration": 67.02783299260773, "outcome": "success", "sample_rate": 1.0, "context": {"http": {"url": "http://opbeans-node:3000/api/types/2", "status_code": 200}, "destination": {"service": {"resource": "opbeans-node:3000", "name": "", "type": ""}}}, "stacktrace": [{"abs_path": "/app/venv/lib/python3.10/site-packages/requests/sessions.py", "filename": "requests/sessions.py", "module": "requests.sessions", "function": "request", "lineno": 529, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/requests/api.py", "filename": "requests/api.py", "module": "requests.api", "function": "request", "lineno": 61, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/requests/api.py", "filename": "requests/api.py", "module": "requests.api", "function": "get", "lineno": 75, "library_frame": true}, {"abs_path": "/app/opbeans/views.py", "filename": "opbeans/views.py", "module": "opbeans.views", "function": "wrapped_view", "lineno": 57, "library_frame": false, "pre_context": [" logger.info(\"dt_ping_pong_proxy\", url=url)", " try:"], "context_line": " other_response = requests.get(url, timeout=15)", "post_context": [" except requests.exceptions.Timeout:", " logger.error(\"dt_ping_pong_timeout\", service=other_service)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "_get_response", "lineno": 181, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/whitenoise/middleware.py", "filename": "whitenoise/middleware.py", "module": "whitenoise.middleware", "function": "__call__", "lineno": 60, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "get_response", "lineno": 130, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/wsgi.py", "filename": "django/core/handlers/wsgi.py", "module": "django.core.handlers.wsgi", "function": "__call__", "lineno": 133, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle_request", "lineno": 179, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle", "lineno": 136, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "accept", "lineno": 31, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run_for_one", "lineno": 69, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run", "lineno": 125, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/base.py", "filename": "gunicorn/workers/base.py", "module": "gunicorn.workers.base", "function": "init_process", "lineno": 142, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_worker", "lineno": 589, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_workers", "lineno": 622, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "manage_workers", "lineno": 551, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "run", "lineno": 202, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 72, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 231, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/wsgiapp.py", "filename": "gunicorn/app/wsgiapp.py", "module": "gunicorn.app.wsgiapp", "function": "run", "lineno": 67, "library_frame": true}, {"abs_path": "/app/venv/bin/gunicorn", "filename": "bin/gunicorn", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(run())", "post_context": []}]}} @@ -688,7 +653,6 @@ {"transaction": {"id": "ee028badcae6b0d9", "trace_id": "654b865f6cc60324e9eb50b0f883c56c", "name": "GET opbeans.views.home", "type": "request", "duration": 258.91829197644256, "result": "HTTP 2xx", "timestamp": 1646055522487168, "outcome": "success", "sampled": true, "span_count": {"started": 2, "dropped": 0}, "sample_rate": 1.0, "parent_id": "c3b7a8af659993db", "context": {"request": {"env": {"REMOTE_ADDR": "172.23.0.14", "SERVER_NAME": "0.0.0.0", "SERVER_PORT": "3000"}, "method": "GET", "socket": {"remote_address": "172.23.0.14"}, "cookies": {}, "headers": {"accept": "*/*", "accept-encoding": "gzip, deflate", "host": "opbeans-python:3000", "user-agent": "Python/3.7 aiohttp/3.3.2"}, "url": {"full": "http://opbeans-python:3000/", "protocol": "http:", "hostname": "opbeans-python", "pathname": "/", "port": "3000"}}, "response": {"status_code": 200, "headers": {"Content-Type": "text/html; charset=utf-8", "X-Frame-Options": "DENY", "Content-Length": "871", "Vary": "Cookie", "X-Content-Type-Options": "nosniff", "Referrer-Policy": "same-origin"}}, "user": {"is_authenticated": true, "id": 9, "username": "timothy77", "email": "timothy77@ward.com"}, "tags": {"request_id": "6067bea0-0eef-4833-bade-4e29e74b3962", "customer_tier": "$$$$"}}}} {"error": {"context": {"tags": {"request_id": "9f1a6205-b0c5-45e4-8bb1-21115149c3ec", "customer_tier": "$"}, "custom": {}}, "id": "11682e5eb053b3a218cf02e0c7b1e419", "log": {"level": "error", "logger_name": "__root__", "message": "About to blow up!", "param_message": "About to blow up!", "stacktrace": [{"abs_path": "/app/venv/lib/python3.10/site-packages/elasticapm/contrib/django/client.py", "filename": "elasticapm/contrib/django/client.py", "module": "elasticapm.contrib.django.client", "function": "capture", "lineno": 183, "library_frame": true, "vars": {"self": "", "event_type": "Message", "request": null, "kwargs": {"message": "About to blow up!", "param_message": null, "context": {}}, "context": {}, "is_http_request": false, "__class__": ""}, "pre_context": [" context[\"user\"] = self.get_user_info(request)", ""], "context_line": " result = super(DjangoClient, self).capture(event_type, **kwargs)", "post_context": ["", " if is_http_request:"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/elasticapm/base.py", "filename": "elasticapm/base.py", "module": "elasticapm.base", "function": "capture_message", "lineno": 259, "library_frame": true, "vars": {"self": "", "message": "About to blow up!", "param_message": null, "kwargs": {}}, "pre_context": [" >>> client.capture_message('My event just happened!')", " \"\"\""], "context_line": " return self.capture(\"Message\", message=message, param_message=param_message, **kwargs)", "post_context": ["", " def capture_exception(self, exc_info=None, handled=True, **kwargs):"]}, {"abs_path": "/app/opbeans/views.py", "filename": "opbeans/views.py", "module": "opbeans.views", "function": "oopsie", "lineno": 296, "library_frame": false, "vars": {"request": ""}, "pre_context": ["", "def oopsie(request):"], "context_line": " client.capture_message('About to blow up!')", "post_context": [" try:", " 1 / 0"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "_get_response", "lineno": 181, "library_frame": true, "vars": {"self": "", "request": "", "response": null, "callback": "", "callback_args": [], "callback_kwargs": {}, "middleware_method": ">", "wrapped_callback": ""}, "pre_context": [" wrapped_callback = async_to_sync(wrapped_callback)", " try:"], "context_line": " response = wrapped_callback(request, *callback_args, **callback_kwargs)", "post_context": [" except Exception as e:", " response = self.process_exception_by_middleware(e, request)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ">"}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true, "vars": {"self": "", "request": "", "response": null}, "pre_context": [" if hasattr(self, 'process_request'):", " response = self.process_request(request)"], "context_line": " response = response or self.get_response(request)", "post_context": [" if hasattr(self, 'process_response'):", " response = self.process_response(request, response)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ""}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true, "vars": {"self": "", "request": "", "response": null}, "pre_context": [" if hasattr(self, 'process_request'):", " response = self.process_request(request)"], "context_line": " response = response or self.get_response(request)", "post_context": [" if hasattr(self, 'process_response'):", " response = self.process_response(request, response)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ""}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true, "vars": {"self": "", "request": "", "response": null}, "pre_context": [" if hasattr(self, 'process_request'):", " response = self.process_request(request)"], "context_line": " response = response or self.get_response(request)", "post_context": [" if hasattr(self, 'process_response'):", " response = self.process_response(request, response)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ""}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ".middleware at 0x401fa1bc70>"}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true, "vars": {"self": "", "request": "", "response": null}, "pre_context": [" if hasattr(self, 'process_request'):", " response = self.process_request(request)"], "context_line": " response = response or self.get_response(request)", "post_context": [" if hasattr(self, 'process_response'):", " response = self.process_response(request, response)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ""}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true, "vars": {"self": "", "request": "", "response": null}, "pre_context": [" if hasattr(self, 'process_request'):", " response = self.process_request(request)"], "context_line": " response = response or self.get_response(request)", "post_context": [" if hasattr(self, 'process_response'):", " response = self.process_response(request, response)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ""}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true, "vars": {"self": "", "request": "", "response": null}, "pre_context": [" if hasattr(self, 'process_request'):", " response = self.process_request(request)"], "context_line": " response = response or self.get_response(request)", "post_context": [" if hasattr(self, 'process_response'):", " response = self.process_response(request, response)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ""}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true, "vars": {"self": "", "request": "", "response": null}, "pre_context": [" if hasattr(self, 'process_request'):", " response = self.process_request(request)"], "context_line": " response = response or self.get_response(request)", "post_context": [" if hasattr(self, 'process_response'):", " response = self.process_response(request, response)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ""}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/whitenoise/middleware.py", "filename": "whitenoise/middleware.py", "module": "whitenoise.middleware", "function": "__call__", "lineno": 60, "library_frame": true, "vars": {"self": "", "request": "", "response": null}, "pre_context": [" response = self.process_request(request)", " if response is None:"], "context_line": " response = self.get_response(request)", "post_context": [" return response", ""]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ""}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true, "vars": {"self": "", "request": "", "response": null}, "pre_context": [" if hasattr(self, 'process_request'):", " response = self.process_request(request)"], "context_line": " response = response or self.get_response(request)", "post_context": [" if hasattr(self, 'process_response'):", " response = self.process_response(request, response)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ""}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ".middleware at 0x401fa776d0>"}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true, "vars": {"self": "", "request": "", "response": null}, "pre_context": [" if hasattr(self, 'process_request'):", " response = self.process_request(request)"], "context_line": " response = response or self.get_response(request)", "post_context": [" if hasattr(self, 'process_response'):", " response = self.process_response(request, response)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ""}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true, "vars": {"self": "", "request": "", "response": null}, "pre_context": [" if hasattr(self, 'process_request'):", " response = self.process_request(request)"], "context_line": " response = response or self.get_response(request)", "post_context": [" if hasattr(self, 'process_response'):", " response = self.process_response(request, response)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ""}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true, "vars": {"self": "", "request": "", "response": null}, "pre_context": [" if hasattr(self, 'process_request'):", " response = self.process_request(request)"], "context_line": " response = response or self.get_response(request)", "post_context": [" if hasattr(self, 'process_response'):", " response = self.process_response(request, response)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ""}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "get_response", "lineno": 130, "library_frame": true, "vars": {"self": "", "request": ""}, "pre_context": [" # Setup default url resolver for this thread", " set_urlconf(settings.ROOT_URLCONF)"], "context_line": " response = self._middleware_chain(request)", "post_context": [" response._resource_closers.append(request.close)", " if response.status_code >= 400:"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/wsgi.py", "filename": "django/core/handlers/wsgi.py", "module": "django.core.handlers.wsgi", "function": "__call__", "lineno": 133, "library_frame": true, "vars": {"self": "", "environ": {"wsgi.errors": "", "wsgi.version": [1, 0], "wsgi.multithread": false, "wsgi.multiprocess": true, "wsgi.run_once": false, "wsgi.file_wrapper": "", "wsgi.input_terminated": true, "SERVER_SOFTWARE": "gunicorn/20.1.0", "wsgi.input": "", "gunicorn.socket": "", "": "(15 more elements)"}, "start_response": ">", "request": ""}, "pre_context": [" signals.request_started.send(sender=self.__class__, environ=environ)", " request = self.request_class(environ)"], "context_line": " response = self.get_response(request)", "post_context": ["", " response._handler_class = self.__class__"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle_request", "lineno": 179, "library_frame": true, "vars": {"self": "", "listener": "", "req": "", "client": "", "addr": ["172.23.0.14", 43378], "environ": {"wsgi.errors": "", "wsgi.version": [1, 0], "wsgi.multithread": false, "wsgi.multiprocess": true, "wsgi.run_once": false, "wsgi.file_wrapper": "", "wsgi.input_terminated": true, "SERVER_SOFTWARE": "gunicorn/20.1.0", "wsgi.input": "", "gunicorn.socket": "", "": "(15 more elements)"}, "resp": "", "request_start": "datetime.datetime(2022, 2, 28, 13, 38, 42, 915041)"}, "pre_context": [" self.log.info(\"Autorestarting worker after current request.\")", " self.alive = False"], "context_line": " respiter = self.wsgi(environ, resp.start_response)", "post_context": [" try:", " if isinstance(respiter, environ['wsgi.file_wrapper']):"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle", "lineno": 136, "library_frame": true, "vars": {"self": "", "listener": "", "client": "", "addr": ["172.23.0.14", 43378], "req": "", "parser": ""}, "pre_context": [" parser = http.RequestParser(self.cfg, client, addr)", " req = next(parser)"], "context_line": " self.handle_request(listener, req, client, addr)", "post_context": [" except http.errors.NoMoreData as e:", " self.log.debug(\"Ignored premature client disconnection. %s\", e)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "accept", "lineno": 31, "library_frame": true, "vars": {"self": "", "listener": "", "client": "", "addr": ["172.23.0.14", 43378]}, "pre_context": [" client.setblocking(1)", " util.close_on_exec(client)"], "context_line": " self.handle(listener, client, addr)", "post_context": ["", " def wait(self, timeout):"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run_for_one", "lineno": 69, "library_frame": true, "vars": {"self": "", "timeout": 15.0, "listener": ""}, "pre_context": [" # workers to come give us some love.", " try:"], "context_line": " self.accept(listener)", "post_context": [" # Keep processing clients until no one is waiting. This", " # prevents the need to select() for every client that we"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run", "lineno": 125, "library_frame": true, "vars": {"self": "", "timeout": 15.0, "s": ""}, "pre_context": [" self.run_for_multiple(timeout)", " else:"], "context_line": " self.run_for_one(timeout)", "post_context": ["", " def handle(self, listener, client, addr):"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/base.py", "filename": "gunicorn/workers/base.py", "module": "gunicorn.workers.base", "function": "init_process", "lineno": 142, "library_frame": true, "vars": {"p": 8, "s": "", "self": ""}, "pre_context": [" # Enter main run loop", " self.booted = True"], "context_line": " self.run()", "post_context": ["", " def load_wsgi(self):"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_worker", "lineno": 589, "library_frame": true, "vars": {"self": "", "worker": "", "pid": 0}, "pre_context": [" self.log.info(\"Booting worker with pid: %s\", worker.pid)", " self.cfg.post_fork(self, worker)"], "context_line": " worker.init_process()", "post_context": [" sys.exit(0)", " except SystemExit:"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_workers", "lineno": 622, "library_frame": true, "vars": {"self": "", "_": 0}, "pre_context": ["", " for _ in range(self.num_workers - len(self.WORKERS)):"], "context_line": " self.spawn_worker()", "post_context": [" time.sleep(0.1 * random.random())", ""]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "manage_workers", "lineno": 551, "library_frame": true, "vars": {"self": ""}, "pre_context": [" \"\"\"", " if len(self.WORKERS) < self.num_workers:"], "context_line": " self.spawn_workers()", "post_context": ["", " workers = self.WORKERS.items()"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "run", "lineno": 202, "library_frame": true, "vars": {"self": ""}, "pre_context": ["", " try:"], "context_line": " self.manage_workers()", "post_context": ["", " while True:"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 72, "library_frame": true, "vars": {"self": ""}, "pre_context": [" def run(self):", " try:"], "context_line": " Arbiter(self).run()", "post_context": [" except RuntimeError as e:", " print(\"\\nError: %s\\n\" % e, file=sys.stderr)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 231, "library_frame": true, "vars": {"self": "", "__class__": ""}, "pre_context": [" sys.path.insert(0, pythonpath)", ""], "context_line": " super().run()", "post_context": []}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/wsgiapp.py", "filename": "gunicorn/app/wsgiapp.py", "module": "gunicorn.app.wsgiapp", "function": "run", "lineno": 67, "library_frame": true, "vars": {"WSGIApplication": ""}, "pre_context": [" \"\"\"", " from gunicorn.app.wsgiapp import WSGIApplication"], "context_line": " WSGIApplication(\"%(prog)s [OPTIONS] [APP_MODULE]\").run()", "post_context": ["", ""]}, {"abs_path": "/app/venv/bin/gunicorn", "filename": "bin/gunicorn", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "vars": {"__name__": "__main__", "__doc__": null, "__package__": null, "__loader__": "<_frozen_importlib_external.SourceFileLoader object at 0x40020b0ca0>", "__spec__": null, "__annotations__": {}, "__builtins__": "", "__file__": "/app/venv/bin/gunicorn", "__cached__": null, "re": "", "sys": "", "run": ""}, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(run())", "post_context": []}]}, "culprit": "__main__.", "timestamp": 1646055522920744, "trace_id": "d6e42c7d3a9b73f3d3397943053a29c4", "parent_id": "1a0e84b2a88f2882", "transaction_id": "1a0e84b2a88f2882", "transaction": {"sampled": true, "type": "request"}}} {"error": {"context": {"request": {"env": {"REMOTE_ADDR": "172.23.0.14", "SERVER_NAME": "0.0.0.0", "SERVER_PORT": "3000"}, "method": "GET", "socket": {"remote_address": "172.23.0.14"}, "cookies": {}, "headers": {"accept": "*/*", "accept-encoding": "gzip, deflate", "host": "opbeans-python:3000", "user-agent": "Python/3.7 aiohttp/3.3.2"}, "url": {"full": "http://opbeans-python:3000/oopsie", "protocol": "http:", "hostname": "opbeans-python", "pathname": "/oopsie", "port": "3000"}}, "user": {"is_authenticated": true, "id": 12, "username": "matthew21", "email": "matthew21@hernandez-travis.org"}, "tags": {"request_id": "9f1a6205-b0c5-45e4-8bb1-21115149c3ec", "customer_tier": "$"}, "custom": {}}, "id": "e0ebec246b9b282bf850e1bce22016ff", "exception": {"message": "AssertionError: oh no", "type": "AssertionError", "module": "builtins", "stacktrace": [{"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ">", "exc": "AssertionError('oh no')"}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "_get_response", "lineno": 181, "library_frame": true, "vars": {"self": "", "request": "", "response": null, "callback": "", "callback_args": [], "callback_kwargs": {}, "middleware_method": ">", "wrapped_callback": ""}, "pre_context": [" wrapped_callback = async_to_sync(wrapped_callback)", " try:"], "context_line": " response = wrapped_callback(request, *callback_args, **callback_kwargs)", "post_context": [" except Exception as e:", " response = self.process_exception_by_middleware(e, request)"]}, {"abs_path": "/app/opbeans/views.py", "filename": "opbeans/views.py", "module": "opbeans.views", "function": "oopsie", "lineno": 303, "library_frame": false, "vars": {"request": ""}, "pre_context": [" 1 + \"a\"", " except TypeError:"], "context_line": " raise AssertionError(\"oh no\")", "post_context": ["", ""]}], "cause": [{"message": "TypeError: unsupported operand type(s) for +: 'int' and 'str'", "type": "TypeError", "module": "builtins", "stacktrace": [{"abs_path": "/app/opbeans/views.py", "filename": "opbeans/views.py", "module": "opbeans.views", "function": "oopsie", "lineno": 301, "library_frame": false, "vars": {"request": ""}, "pre_context": [" except ZeroDivisionError:", " try:"], "context_line": " 1 + \"a\"", "post_context": [" except TypeError:", " raise AssertionError(\"oh no\")"]}], "cause": [{"message": "ZeroDivisionError: division by zero", "type": "ZeroDivisionError", "module": "builtins", "stacktrace": [{"abs_path": "/app/opbeans/views.py", "filename": "opbeans/views.py", "module": "opbeans.views", "function": "oopsie", "lineno": 298, "library_frame": false, "vars": {"request": ""}, "pre_context": [" client.capture_message('About to blow up!')", " try:"], "context_line": " 1 / 0", "post_context": [" except ZeroDivisionError:", " try:"]}]}]}], "handled": false}, "culprit": "opbeans.views.oopsie", "timestamp": 1646055522982936, "trace_id": "d6e42c7d3a9b73f3d3397943053a29c4", "parent_id": "1a0e84b2a88f2882", "transaction_id": "1a0e84b2a88f2882", "transaction": {"sampled": true, "type": "request"}}} -{"metadata": {"service": {"name": "opbeans-python", "environment": "production", "version": "None", "agent": {"name": "python", "version": "6.7.2"}, "language": {"name": "python", "version": "3.10.2"}, "runtime": {"name": "CPython", "version": "3.10.2"}, "framework": {"name": "django", "version": "3.2.11"}}, "process": {"pid": 119, "ppid": 109, "argv": ["/app/venv/bin/gunicorn", "--workers", "4", "--bind", "0.0.0.0:3000", "opbeans.wsgi"], "title": null}, "system": {"hostname": "88abe6e3ded4", "architecture": "x86_64", "platform": "linux"}}} {"transaction": {"id": "1a0e84b2a88f2882", "trace_id": "d6e42c7d3a9b73f3d3397943053a29c4", "name": "GET opbeans.views.oopsie", "type": "request", "duration": 107.0563750108704, "result": "HTTP 5xx", "timestamp": 1646055522916026, "outcome": "failure", "sampled": true, "span_count": {"started": 0, "dropped": 0}, "sample_rate": 1.0, "context": {"request": {"env": {"REMOTE_ADDR": "172.23.0.14", "SERVER_NAME": "0.0.0.0", "SERVER_PORT": "3000"}, "method": "GET", "socket": {"remote_address": "172.23.0.14"}, "cookies": {}, "headers": {"accept": "*/*", "accept-encoding": "gzip, deflate", "host": "opbeans-python:3000", "user-agent": "Python/3.7 aiohttp/3.3.2"}, "url": {"full": "http://opbeans-python:3000/oopsie", "protocol": "http:", "hostname": "opbeans-python", "pathname": "/oopsie", "port": "3000"}}, "response": {"status_code": 500, "headers": {"Content-Type": "text/html", "X-Frame-Options": "DENY", "Content-Length": "145", "Vary": "Cookie", "X-Content-Type-Options": "nosniff", "Referrer-Policy": "same-origin"}}, "user": {"is_authenticated": true, "id": 12, "username": "matthew21", "email": "matthew21@hernandez-travis.org"}, "tags": {"request_id": "9f1a6205-b0c5-45e4-8bb1-21115149c3ec", "customer_tier": "$"}}}} {"span": {"id": "1981afd7c355ff77", "transaction_id": "87ccfe5cdacf89ab", "trace_id": "90cc1a3ef8ce75787b8905d8020573ea", "parent_id": "87ccfe5cdacf89ab", "name": "hard-home-work", "type": "code", "subtype": "custom", "action": null, "timestamp": 1646055523238967, "duration": 175.70766698918305, "outcome": "success", "sample_rate": 1.0, "stacktrace": [{"abs_path": "/app/opbeans/views.py", "filename": "opbeans/views.py", "module": "opbeans.views", "function": "home", "lineno": 308, "library_frame": false, "pre_context": ["", "def home(request):"], "context_line": " with elasticapm.capture_span(\"hard-home-work\"):", "post_context": [" time.sleep(random.random() / 2.0)", " return render(request, \"index.html\")"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "_get_response", "lineno": 181, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/whitenoise/middleware.py", "filename": "whitenoise/middleware.py", "module": "whitenoise.middleware", "function": "__call__", "lineno": 60, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "get_response", "lineno": 130, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/wsgi.py", "filename": "django/core/handlers/wsgi.py", "module": "django.core.handlers.wsgi", "function": "__call__", "lineno": 133, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle_request", "lineno": 179, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle", "lineno": 136, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "accept", "lineno": 31, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run_for_one", "lineno": 69, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run", "lineno": 125, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/base.py", "filename": "gunicorn/workers/base.py", "module": "gunicorn.workers.base", "function": "init_process", "lineno": 142, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_worker", "lineno": 589, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_workers", "lineno": 622, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "manage_workers", "lineno": 551, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "run", "lineno": 202, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 72, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 231, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/wsgiapp.py", "filename": "gunicorn/app/wsgiapp.py", "module": "gunicorn.app.wsgiapp", "function": "run", "lineno": 67, "library_frame": true}, {"abs_path": "/app/venv/bin/gunicorn", "filename": "bin/gunicorn", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(run())", "post_context": []}]}} {"span": {"id": "f0ff807a4b09b77f", "transaction_id": "87ccfe5cdacf89ab", "trace_id": "90cc1a3ef8ce75787b8905d8020573ea", "parent_id": "87ccfe5cdacf89ab", "name": "index.html", "type": "template", "subtype": "django", "action": "render", "timestamp": 1646055523418625, "duration": 5.995458021061495, "outcome": "success", "sample_rate": 1.0, "stacktrace": [{"abs_path": "/app/venv/lib/python3.10/site-packages/django/template/backends/django.py", "filename": "django/template/backends/django.py", "module": "django.template.backends.django", "function": "render", "lineno": 61, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/template/loader.py", "filename": "django/template/loader.py", "module": "django.template.loader", "function": "render_to_string", "lineno": 62, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/shortcuts.py", "filename": "django/shortcuts.py", "module": "django.shortcuts", "function": "render", "lineno": 19, "library_frame": true}, {"abs_path": "/app/opbeans/views.py", "filename": "opbeans/views.py", "module": "opbeans.views", "function": "home", "lineno": 310, "library_frame": false, "pre_context": [" with elasticapm.capture_span(\"hard-home-work\"):", " time.sleep(random.random() / 2.0)"], "context_line": " return render(request, \"index.html\")", "post_context": ["", ""]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "_get_response", "lineno": 181, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/whitenoise/middleware.py", "filename": "whitenoise/middleware.py", "module": "whitenoise.middleware", "function": "__call__", "lineno": 60, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "get_response", "lineno": 130, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/wsgi.py", "filename": "django/core/handlers/wsgi.py", "module": "django.core.handlers.wsgi", "function": "__call__", "lineno": 133, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle_request", "lineno": 179, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle", "lineno": 136, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "accept", "lineno": 31, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run_for_one", "lineno": 69, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run", "lineno": 125, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/base.py", "filename": "gunicorn/workers/base.py", "module": "gunicorn.workers.base", "function": "init_process", "lineno": 142, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_worker", "lineno": 589, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_workers", "lineno": 622, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "manage_workers", "lineno": 551, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "run", "lineno": 202, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 72, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 231, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/wsgiapp.py", "filename": "gunicorn/app/wsgiapp.py", "module": "gunicorn.app.wsgiapp", "function": "run", "lineno": 67, "library_frame": true}, {"abs_path": "/app/venv/bin/gunicorn", "filename": "bin/gunicorn", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(run())", "post_context": []}]}} @@ -699,7 +663,6 @@ {"transaction": {"id": "3cf65311304d141b", "trace_id": "db4c4df8e87ecbd75073399789db915d", "name": "GET opbeans.views.top_products", "type": "request", "duration": 64.4109999993816, "result": "HTTP 2xx", "timestamp": 1646055523933896, "outcome": "success", "sampled": true, "span_count": {"started": 1, "dropped": 0}, "sample_rate": 1.0, "parent_id": "798204d6f922c608", "context": {"request": {"env": {"REMOTE_ADDR": "172.23.0.10", "SERVER_NAME": "0.0.0.0", "SERVER_PORT": "3000"}, "method": "GET", "socket": {"remote_address": "172.23.0.10"}, "cookies": {}, "headers": {"traceparent": "00-db4c4df8e87ecbd75073399789db915d-798204d6f922c608-01", "tracestate": "es=s:1", "elastic-apm-traceparent": "00-db4c4df8e87ecbd75073399789db915d-798204d6f922c608-01", "host": "opbeans-python:3000", "connection": "close"}, "url": {"full": "http://opbeans-python:3000/api/products/top", "protocol": "http:", "hostname": "opbeans-python", "pathname": "/api/products/top", "port": "3000"}}, "response": {"status_code": 200, "headers": {"Content-Type": "application/json", "X-Frame-Options": "DENY", "Content-Length": "309", "Vary": "Cookie", "X-Content-Type-Options": "nosniff", "Referrer-Policy": "same-origin"}}, "user": {"is_authenticated": true, "id": 6, "username": "tannermonica", "email": "tannermonica@burton-davis.com"}, "tags": {"request_id": "17bea4ed-ba54-4fa5-8e43-2548a6d2a6ae", "customer_tier": "$$$$"}}}} {"error": {"context": {"tags": {"request_id": "36892240-1df5-4ef7-b5db-3291f56f6ac6", "customer_tier": "$$"}, "custom": {}}, "id": "f3e2288d7975714ddf3d7d1b58b630c0", "log": {"level": "error", "logger_name": "__root__", "message": "About to blow up!", "param_message": "About to blow up!", "stacktrace": [{"abs_path": "/app/venv/lib/python3.10/site-packages/elasticapm/contrib/django/client.py", "filename": "elasticapm/contrib/django/client.py", "module": "elasticapm.contrib.django.client", "function": "capture", "lineno": 183, "library_frame": true, "vars": {"self": "", "event_type": "Message", "request": null, "kwargs": {"message": "About to blow up!", "param_message": null, "context": {}}, "context": {}, "is_http_request": false, "__class__": ""}, "pre_context": [" context[\"user\"] = self.get_user_info(request)", ""], "context_line": " result = super(DjangoClient, self).capture(event_type, **kwargs)", "post_context": ["", " if is_http_request:"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/elasticapm/base.py", "filename": "elasticapm/base.py", "module": "elasticapm.base", "function": "capture_message", "lineno": 259, "library_frame": true, "vars": {"self": "", "message": "About to blow up!", "param_message": null, "kwargs": {}}, "pre_context": [" >>> client.capture_message('My event just happened!')", " \"\"\""], "context_line": " return self.capture(\"Message\", message=message, param_message=param_message, **kwargs)", "post_context": ["", " def capture_exception(self, exc_info=None, handled=True, **kwargs):"]}, {"abs_path": "/app/opbeans/views.py", "filename": "opbeans/views.py", "module": "opbeans.views", "function": "oopsie", "lineno": 296, "library_frame": false, "vars": {"request": ""}, "pre_context": ["", "def oopsie(request):"], "context_line": " client.capture_message('About to blow up!')", "post_context": [" try:", " 1 / 0"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "_get_response", "lineno": 181, "library_frame": true, "vars": {"self": "", "request": "", "response": null, "callback": "", "callback_args": [], "callback_kwargs": {}, "middleware_method": ">", "wrapped_callback": ""}, "pre_context": [" wrapped_callback = async_to_sync(wrapped_callback)", " try:"], "context_line": " response = wrapped_callback(request, *callback_args, **callback_kwargs)", "post_context": [" except Exception as e:", " response = self.process_exception_by_middleware(e, request)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ">"}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true, "vars": {"self": "", "request": "", "response": null}, "pre_context": [" if hasattr(self, 'process_request'):", " response = self.process_request(request)"], "context_line": " response = response or self.get_response(request)", "post_context": [" if hasattr(self, 'process_response'):", " response = self.process_response(request, response)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ""}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true, "vars": {"self": "", "request": "", "response": null}, "pre_context": [" if hasattr(self, 'process_request'):", " response = self.process_request(request)"], "context_line": " response = response or self.get_response(request)", "post_context": [" if hasattr(self, 'process_response'):", " response = self.process_response(request, response)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ""}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true, "vars": {"self": "", "request": "", "response": null}, "pre_context": [" if hasattr(self, 'process_request'):", " response = self.process_request(request)"], "context_line": " response = response or self.get_response(request)", "post_context": [" if hasattr(self, 'process_response'):", " response = self.process_response(request, response)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ""}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ".middleware at 0x401fa1bc70>"}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true, "vars": {"self": "", "request": "", "response": null}, "pre_context": [" if hasattr(self, 'process_request'):", " response = self.process_request(request)"], "context_line": " response = response or self.get_response(request)", "post_context": [" if hasattr(self, 'process_response'):", " response = self.process_response(request, response)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ""}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true, "vars": {"self": "", "request": "", "response": null}, "pre_context": [" if hasattr(self, 'process_request'):", " response = self.process_request(request)"], "context_line": " response = response or self.get_response(request)", "post_context": [" if hasattr(self, 'process_response'):", " response = self.process_response(request, response)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ""}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true, "vars": {"self": "", "request": "", "response": null}, "pre_context": [" if hasattr(self, 'process_request'):", " response = self.process_request(request)"], "context_line": " response = response or self.get_response(request)", "post_context": [" if hasattr(self, 'process_response'):", " response = self.process_response(request, response)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ""}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true, "vars": {"self": "", "request": "", "response": null}, "pre_context": [" if hasattr(self, 'process_request'):", " response = self.process_request(request)"], "context_line": " response = response or self.get_response(request)", "post_context": [" if hasattr(self, 'process_response'):", " response = self.process_response(request, response)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ""}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/whitenoise/middleware.py", "filename": "whitenoise/middleware.py", "module": "whitenoise.middleware", "function": "__call__", "lineno": 60, "library_frame": true, "vars": {"self": "", "request": "", "response": null}, "pre_context": [" response = self.process_request(request)", " if response is None:"], "context_line": " response = self.get_response(request)", "post_context": [" return response", ""]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ""}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true, "vars": {"self": "", "request": "", "response": null}, "pre_context": [" if hasattr(self, 'process_request'):", " response = self.process_request(request)"], "context_line": " response = response or self.get_response(request)", "post_context": [" if hasattr(self, 'process_response'):", " response = self.process_response(request, response)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ""}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ".middleware at 0x401fa776d0>"}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true, "vars": {"self": "", "request": "", "response": null}, "pre_context": [" if hasattr(self, 'process_request'):", " response = self.process_request(request)"], "context_line": " response = response or self.get_response(request)", "post_context": [" if hasattr(self, 'process_response'):", " response = self.process_response(request, response)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ""}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true, "vars": {"self": "", "request": "", "response": null}, "pre_context": [" if hasattr(self, 'process_request'):", " response = self.process_request(request)"], "context_line": " response = response or self.get_response(request)", "post_context": [" if hasattr(self, 'process_response'):", " response = self.process_response(request, response)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ""}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true, "vars": {"self": "", "request": "", "response": null}, "pre_context": [" if hasattr(self, 'process_request'):", " response = self.process_request(request)"], "context_line": " response = response or self.get_response(request)", "post_context": [" if hasattr(self, 'process_response'):", " response = self.process_response(request, response)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ""}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "get_response", "lineno": 130, "library_frame": true, "vars": {"self": "", "request": ""}, "pre_context": [" # Setup default url resolver for this thread", " set_urlconf(settings.ROOT_URLCONF)"], "context_line": " response = self._middleware_chain(request)", "post_context": [" response._resource_closers.append(request.close)", " if response.status_code >= 400:"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/wsgi.py", "filename": "django/core/handlers/wsgi.py", "module": "django.core.handlers.wsgi", "function": "__call__", "lineno": 133, "library_frame": true, "vars": {"self": "", "environ": {"wsgi.errors": "", "wsgi.version": [1, 0], "wsgi.multithread": false, "wsgi.multiprocess": true, "wsgi.run_once": false, "wsgi.file_wrapper": "", "wsgi.input_terminated": true, "SERVER_SOFTWARE": "gunicorn/20.1.0", "wsgi.input": "", "gunicorn.socket": "", "": "(15 more elements)"}, "start_response": ">", "request": ""}, "pre_context": [" signals.request_started.send(sender=self.__class__, environ=environ)", " request = self.request_class(environ)"], "context_line": " response = self.get_response(request)", "post_context": ["", " response._handler_class = self.__class__"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle_request", "lineno": 179, "library_frame": true, "vars": {"self": "", "listener": "", "req": "", "client": "", "addr": ["172.23.0.14", 43466], "environ": {"wsgi.errors": "", "wsgi.version": [1, 0], "wsgi.multithread": false, "wsgi.multiprocess": true, "wsgi.run_once": false, "wsgi.file_wrapper": "", "wsgi.input_terminated": true, "SERVER_SOFTWARE": "gunicorn/20.1.0", "wsgi.input": "", "gunicorn.socket": "", "": "(15 more elements)"}, "resp": "", "request_start": "datetime.datetime(2022, 2, 28, 13, 38, 44, 27444)"}, "pre_context": [" self.log.info(\"Autorestarting worker after current request.\")", " self.alive = False"], "context_line": " respiter = self.wsgi(environ, resp.start_response)", "post_context": [" try:", " if isinstance(respiter, environ['wsgi.file_wrapper']):"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle", "lineno": 136, "library_frame": true, "vars": {"self": "", "listener": "", "client": "", "addr": ["172.23.0.14", 43466], "req": "", "parser": ""}, "pre_context": [" parser = http.RequestParser(self.cfg, client, addr)", " req = next(parser)"], "context_line": " self.handle_request(listener, req, client, addr)", "post_context": [" except http.errors.NoMoreData as e:", " self.log.debug(\"Ignored premature client disconnection. %s\", e)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "accept", "lineno": 31, "library_frame": true, "vars": {"self": "", "listener": "", "client": "", "addr": ["172.23.0.14", 43466]}, "pre_context": [" client.setblocking(1)", " util.close_on_exec(client)"], "context_line": " self.handle(listener, client, addr)", "post_context": ["", " def wait(self, timeout):"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run_for_one", "lineno": 69, "library_frame": true, "vars": {"self": "", "timeout": 15.0, "listener": ""}, "pre_context": [" # workers to come give us some love.", " try:"], "context_line": " self.accept(listener)", "post_context": [" # Keep processing clients until no one is waiting. This", " # prevents the need to select() for every client that we"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run", "lineno": 125, "library_frame": true, "vars": {"self": "", "timeout": 15.0, "s": ""}, "pre_context": [" self.run_for_multiple(timeout)", " else:"], "context_line": " self.run_for_one(timeout)", "post_context": ["", " def handle(self, listener, client, addr):"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/base.py", "filename": "gunicorn/workers/base.py", "module": "gunicorn.workers.base", "function": "init_process", "lineno": 142, "library_frame": true, "vars": {"p": 8, "s": "", "self": ""}, "pre_context": [" # Enter main run loop", " self.booted = True"], "context_line": " self.run()", "post_context": ["", " def load_wsgi(self):"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_worker", "lineno": 589, "library_frame": true, "vars": {"self": "", "worker": "", "pid": 0}, "pre_context": [" self.log.info(\"Booting worker with pid: %s\", worker.pid)", " self.cfg.post_fork(self, worker)"], "context_line": " worker.init_process()", "post_context": [" sys.exit(0)", " except SystemExit:"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_workers", "lineno": 622, "library_frame": true, "vars": {"self": "", "_": 0}, "pre_context": ["", " for _ in range(self.num_workers - len(self.WORKERS)):"], "context_line": " self.spawn_worker()", "post_context": [" time.sleep(0.1 * random.random())", ""]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "manage_workers", "lineno": 551, "library_frame": true, "vars": {"self": ""}, "pre_context": [" \"\"\"", " if len(self.WORKERS) < self.num_workers:"], "context_line": " self.spawn_workers()", "post_context": ["", " workers = self.WORKERS.items()"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "run", "lineno": 202, "library_frame": true, "vars": {"self": ""}, "pre_context": ["", " try:"], "context_line": " self.manage_workers()", "post_context": ["", " while True:"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 72, "library_frame": true, "vars": {"self": ""}, "pre_context": [" def run(self):", " try:"], "context_line": " Arbiter(self).run()", "post_context": [" except RuntimeError as e:", " print(\"\\nError: %s\\n\" % e, file=sys.stderr)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 231, "library_frame": true, "vars": {"self": "", "__class__": ""}, "pre_context": [" sys.path.insert(0, pythonpath)", ""], "context_line": " super().run()", "post_context": []}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/wsgiapp.py", "filename": "gunicorn/app/wsgiapp.py", "module": "gunicorn.app.wsgiapp", "function": "run", "lineno": 67, "library_frame": true, "vars": {"WSGIApplication": ""}, "pre_context": [" \"\"\"", " from gunicorn.app.wsgiapp import WSGIApplication"], "context_line": " WSGIApplication(\"%(prog)s [OPTIONS] [APP_MODULE]\").run()", "post_context": ["", ""]}, {"abs_path": "/app/venv/bin/gunicorn", "filename": "bin/gunicorn", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "vars": {"__name__": "__main__", "__doc__": null, "__package__": null, "__loader__": "<_frozen_importlib_external.SourceFileLoader object at 0x40020b0ca0>", "__spec__": null, "__annotations__": {}, "__builtins__": "", "__file__": "/app/venv/bin/gunicorn", "__cached__": null, "re": "", "sys": "", "run": ""}, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(run())", "post_context": []}]}, "culprit": "__main__.", "timestamp": 1646055524042032, "trace_id": "d0005850eddb1c82048975cc8a487fd2", "parent_id": "7faec06f86c995cc", "transaction_id": "7faec06f86c995cc", "transaction": {"sampled": true, "type": "request"}}} {"error": {"context": {"request": {"env": {"REMOTE_ADDR": "172.23.0.14", "SERVER_NAME": "0.0.0.0", "SERVER_PORT": "3000"}, "method": "GET", "socket": {"remote_address": "172.23.0.14"}, "cookies": {}, "headers": {"accept": "*/*", "accept-encoding": "gzip, deflate", "host": "opbeans-python:3000", "user-agent": "Python/3.7 aiohttp/3.3.2"}, "url": {"full": "http://opbeans-python:3000/oopsie", "protocol": "http:", "hostname": "opbeans-python", "pathname": "/oopsie", "port": "3000"}}, "user": {"is_authenticated": true, "id": 11, "username": "crystal68", "email": "crystal68@gonzales-horn.info"}, "tags": {"request_id": "36892240-1df5-4ef7-b5db-3291f56f6ac6", "customer_tier": "$$"}, "custom": {}}, "id": "873f67996e0bfbf9068b50a8a2682d9e", "exception": {"message": "AssertionError: oh no", "type": "AssertionError", "module": "builtins", "stacktrace": [{"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true, "vars": {"request": "", "get_response": ">", "exc": "AssertionError('oh no')"}, "pre_context": [" def inner(request):", " try:"], "context_line": " response = get_response(request)", "post_context": [" except Exception as exc:", " response = response_for_exception(request, exc)"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "_get_response", "lineno": 181, "library_frame": true, "vars": {"self": "", "request": "", "response": null, "callback": "", "callback_args": [], "callback_kwargs": {}, "middleware_method": ">", "wrapped_callback": ""}, "pre_context": [" wrapped_callback = async_to_sync(wrapped_callback)", " try:"], "context_line": " response = wrapped_callback(request, *callback_args, **callback_kwargs)", "post_context": [" except Exception as e:", " response = self.process_exception_by_middleware(e, request)"]}, {"abs_path": "/app/opbeans/views.py", "filename": "opbeans/views.py", "module": "opbeans.views", "function": "oopsie", "lineno": 303, "library_frame": false, "vars": {"request": ""}, "pre_context": [" 1 + \"a\"", " except TypeError:"], "context_line": " raise AssertionError(\"oh no\")", "post_context": ["", ""]}], "cause": [{"message": "TypeError: unsupported operand type(s) for +: 'int' and 'str'", "type": "TypeError", "module": "builtins", "stacktrace": [{"abs_path": "/app/opbeans/views.py", "filename": "opbeans/views.py", "module": "opbeans.views", "function": "oopsie", "lineno": 301, "library_frame": false, "vars": {"request": ""}, "pre_context": [" except ZeroDivisionError:", " try:"], "context_line": " 1 + \"a\"", "post_context": [" except TypeError:", " raise AssertionError(\"oh no\")"]}], "cause": [{"message": "ZeroDivisionError: division by zero", "type": "ZeroDivisionError", "module": "builtins", "stacktrace": [{"abs_path": "/app/opbeans/views.py", "filename": "opbeans/views.py", "module": "opbeans.views", "function": "oopsie", "lineno": 298, "library_frame": false, "vars": {"request": ""}, "pre_context": [" client.capture_message('About to blow up!')", " try:"], "context_line": " 1 / 0", "post_context": [" except ZeroDivisionError:", " try:"]}]}]}], "handled": false}, "culprit": "opbeans.views.oopsie", "timestamp": 1646055524160906, "trace_id": "d0005850eddb1c82048975cc8a487fd2", "parent_id": "7faec06f86c995cc", "transaction_id": "7faec06f86c995cc", "transaction": {"sampled": true, "type": "request"}}} -{"metadata": {"service": {"name": "opbeans-python", "environment": "production", "version": "None", "agent": {"name": "python", "version": "6.7.2"}, "language": {"name": "python", "version": "3.10.2"}, "runtime": {"name": "CPython", "version": "3.10.2"}, "framework": {"name": "django", "version": "3.2.11"}}, "process": {"pid": 125, "ppid": 109, "argv": ["/app/venv/bin/gunicorn", "--workers", "4", "--bind", "0.0.0.0:3000", "opbeans.wsgi"], "title": null}, "system": {"hostname": "88abe6e3ded4", "architecture": "x86_64", "platform": "linux"}}} {"span": {"id": "5bfa31a9d5ddfa7c", "transaction_id": "f3532bc1d09fa44b", "trace_id": "22e5413c28c0577fc578639315b8b7f5", "parent_id": "9dc3132205de42c5", "name": "SELECT FROM opbeans_customer", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055516298903, "duration": 7.767665985738859, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT \"opbeans_customer\".\"id\", \"opbeans_customer\".\"full_name\", \"opbeans_customer\".\"company_name\", \"opbeans_customer\".\"email\", \"opbeans_customer\".\"address\", \"opbeans_customer\".\"postal_code\", \"opbeans_customer\".\"city\", \"opbeans_customer\".\"country\" FROM \"opbeans_customer\" WHERE \"opbeans_customer\".\"id\" = %s LIMIT 21"}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}, "stacktrace": [{"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/backends/utils.py", "filename": "django/db/backends/utils.py", "module": "django.db.backends.utils", "function": "_execute_with_wrappers", "lineno": 75, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/backends/utils.py", "filename": "django/db/backends/utils.py", "module": "django.db.backends.utils", "function": "execute", "lineno": 66, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/sql/compiler.py", "filename": "django/db/models/sql/compiler.py", "module": "django.db.models.sql.compiler", "function": "execute_sql", "lineno": 1175, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/query.py", "filename": "django/db/models/query.py", "module": "django.db.models.query", "function": "__iter__", "lineno": 51, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/query.py", "filename": "django/db/models/query.py", "module": "django.db.models.query", "function": "_fetch_all", "lineno": 1324, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/query.py", "filename": "django/db/models/query.py", "module": "django.db.models.query", "function": "__len__", "lineno": 262, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/query.py", "filename": "django/db/models/query.py", "module": "django.db.models.query", "function": "get", "lineno": 431, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/fields/related_descriptors.py", "filename": "django/db/models/fields/related_descriptors.py", "module": "django.db.models.fields.related_descriptors", "function": "get_object", "lineno": 154, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/fields/related_descriptors.py", "filename": "django/db/models/fields/related_descriptors.py", "module": "django.db.models.fields.related_descriptors", "function": "__get__", "lineno": 187, "library_frame": true}, {"abs_path": "/app/opbeans/views.py", "filename": "opbeans/views.py", "module": "opbeans.views", "function": "", "lineno": 204, "library_frame": false, "pre_context": [" {\"id\": order.id,", " \"customer_id\": order.customer_id,"], "context_line": " \"customer_name\": order.customer.full_name,", "post_context": [" \"created_at\": order.created_at", " } for order in order_list"]}, {"abs_path": "/app/opbeans/views.py", "filename": "opbeans/views.py", "module": "opbeans.views", "function": "orders", "lineno": 201, "library_frame": false, "pre_context": [" order_list = list(m.Order.objects.all()[:1000])", " with elasticapm.capture_span(\"iterate_orders\"):"], "context_line": " orders = [", "post_context": [" {\"id\": order.id,", " \"customer_id\": order.customer_id,"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/views/decorators/csrf.py", "filename": "django/views/decorators/csrf.py", "module": "django.views.decorators.csrf", "function": "wrapped_view", "lineno": 54, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "_get_response", "lineno": 181, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/whitenoise/middleware.py", "filename": "whitenoise/middleware.py", "module": "whitenoise.middleware", "function": "__call__", "lineno": 60, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "get_response", "lineno": 130, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/wsgi.py", "filename": "django/core/handlers/wsgi.py", "module": "django.core.handlers.wsgi", "function": "__call__", "lineno": 133, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle_request", "lineno": 179, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle", "lineno": 136, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "accept", "lineno": 31, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run_for_one", "lineno": 69, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run", "lineno": 125, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/base.py", "filename": "gunicorn/workers/base.py", "module": "gunicorn.workers.base", "function": "init_process", "lineno": 142, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_worker", "lineno": 589, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_workers", "lineno": 622, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "manage_workers", "lineno": 551, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "run", "lineno": 202, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 72, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 231, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/wsgiapp.py", "filename": "gunicorn/app/wsgiapp.py", "module": "gunicorn.app.wsgiapp", "function": "run", "lineno": 67, "library_frame": true}, {"abs_path": "/app/venv/bin/gunicorn", "filename": "bin/gunicorn", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(run())", "post_context": []}]}} {"span": {"id": "1531d369de46ec83", "transaction_id": "f3532bc1d09fa44b", "trace_id": "22e5413c28c0577fc578639315b8b7f5", "parent_id": "9dc3132205de42c5", "name": "SELECT FROM opbeans_customer", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055516318976, "duration": 1.791042013792321, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT \"opbeans_customer\".\"id\", \"opbeans_customer\".\"full_name\", \"opbeans_customer\".\"company_name\", \"opbeans_customer\".\"email\", \"opbeans_customer\".\"address\", \"opbeans_customer\".\"postal_code\", \"opbeans_customer\".\"city\", \"opbeans_customer\".\"country\" FROM \"opbeans_customer\" WHERE \"opbeans_customer\".\"id\" = %s LIMIT 21"}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}}} {"span": {"id": "feb2f55f57a34b25", "transaction_id": "f3532bc1d09fa44b", "trace_id": "22e5413c28c0577fc578639315b8b7f5", "parent_id": "9dc3132205de42c5", "name": "SELECT FROM opbeans_customer", "type": "db", "subtype": "postgresql", "action": "query", "timestamp": 1646055516325669, "duration": 12.682708009378985, "outcome": "success", "sample_rate": 1.0, "context": {"db": {"type": "sql", "statement": "SELECT \"opbeans_customer\".\"id\", \"opbeans_customer\".\"full_name\", \"opbeans_customer\".\"company_name\", \"opbeans_customer\".\"email\", \"opbeans_customer\".\"address\", \"opbeans_customer\".\"postal_code\", \"opbeans_customer\".\"city\", \"opbeans_customer\".\"country\" FROM \"opbeans_customer\" WHERE \"opbeans_customer\".\"id\" = %s LIMIT 21"}, "destination": {"address": "postgres", "port": 5432, "service": {"resource": "postgresql", "name": "", "type": ""}}}, "stacktrace": [{"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/backends/utils.py", "filename": "django/db/backends/utils.py", "module": "django.db.backends.utils", "function": "_execute_with_wrappers", "lineno": 75, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/backends/utils.py", "filename": "django/db/backends/utils.py", "module": "django.db.backends.utils", "function": "execute", "lineno": 66, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/sql/compiler.py", "filename": "django/db/models/sql/compiler.py", "module": "django.db.models.sql.compiler", "function": "execute_sql", "lineno": 1175, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/query.py", "filename": "django/db/models/query.py", "module": "django.db.models.query", "function": "__iter__", "lineno": 51, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/query.py", "filename": "django/db/models/query.py", "module": "django.db.models.query", "function": "_fetch_all", "lineno": 1324, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/query.py", "filename": "django/db/models/query.py", "module": "django.db.models.query", "function": "__len__", "lineno": 262, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/query.py", "filename": "django/db/models/query.py", "module": "django.db.models.query", "function": "get", "lineno": 431, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/fields/related_descriptors.py", "filename": "django/db/models/fields/related_descriptors.py", "module": "django.db.models.fields.related_descriptors", "function": "get_object", "lineno": 154, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/db/models/fields/related_descriptors.py", "filename": "django/db/models/fields/related_descriptors.py", "module": "django.db.models.fields.related_descriptors", "function": "__get__", "lineno": 187, "library_frame": true}, {"abs_path": "/app/opbeans/views.py", "filename": "opbeans/views.py", "module": "opbeans.views", "function": "", "lineno": 204, "library_frame": false, "pre_context": [" {\"id\": order.id,", " \"customer_id\": order.customer_id,"], "context_line": " \"customer_name\": order.customer.full_name,", "post_context": [" \"created_at\": order.created_at", " } for order in order_list"]}, {"abs_path": "/app/opbeans/views.py", "filename": "opbeans/views.py", "module": "opbeans.views", "function": "orders", "lineno": 201, "library_frame": false, "pre_context": [" order_list = list(m.Order.objects.all()[:1000])", " with elasticapm.capture_span(\"iterate_orders\"):"], "context_line": " orders = [", "post_context": [" {\"id\": order.id,", " \"customer_id\": order.customer_id,"]}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/views/decorators/csrf.py", "filename": "django/views/decorators/csrf.py", "module": "django.views.decorators.csrf", "function": "wrapped_view", "lineno": 54, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "_get_response", "lineno": 181, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/whitenoise/middleware.py", "filename": "whitenoise/middleware.py", "module": "whitenoise.middleware", "function": "__call__", "lineno": 60, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/utils/deprecation.py", "filename": "django/utils/deprecation.py", "module": "django.utils.deprecation", "function": "__call__", "lineno": 117, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", "filename": "django/core/handlers/exception.py", "module": "django.core.handlers.exception", "function": "inner", "lineno": 47, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/base.py", "filename": "django/core/handlers/base.py", "module": "django.core.handlers.base", "function": "get_response", "lineno": 130, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/django/core/handlers/wsgi.py", "filename": "django/core/handlers/wsgi.py", "module": "django.core.handlers.wsgi", "function": "__call__", "lineno": 133, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle_request", "lineno": 179, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "handle", "lineno": 136, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "accept", "lineno": 31, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run_for_one", "lineno": 69, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/sync.py", "filename": "gunicorn/workers/sync.py", "module": "gunicorn.workers.sync", "function": "run", "lineno": 125, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/workers/base.py", "filename": "gunicorn/workers/base.py", "module": "gunicorn.workers.base", "function": "init_process", "lineno": 142, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_worker", "lineno": 589, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "spawn_workers", "lineno": 622, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "manage_workers", "lineno": 551, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/arbiter.py", "filename": "gunicorn/arbiter.py", "module": "gunicorn.arbiter", "function": "run", "lineno": 202, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 72, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/base.py", "filename": "gunicorn/app/base.py", "module": "gunicorn.app.base", "function": "run", "lineno": 231, "library_frame": true}, {"abs_path": "/app/venv/lib/python3.10/site-packages/gunicorn/app/wsgiapp.py", "filename": "gunicorn/app/wsgiapp.py", "module": "gunicorn.app.wsgiapp", "function": "run", "lineno": 67, "library_frame": true}, {"abs_path": "/app/venv/bin/gunicorn", "filename": "bin/gunicorn", "module": "__main__", "function": "", "lineno": 8, "library_frame": false, "pre_context": ["if __name__ == '__main__':", " sys.argv[0] = re.sub(r'(-script\\.pyw|\\.exe)?$', '', sys.argv[0])"], "context_line": " sys.exit(run())", "post_context": []}]}} @@ -798,7 +761,6 @@ {"span": {"id": "3c07ecbd0d7aa6d9", "transaction_id": "b1ee8604704ca9f5", "trace_id": "0d397afb71663d739fd96fd3ae416b7a", "parent_id": "b1ee8604704ca9f5", "name": "