-
Notifications
You must be signed in to change notification settings - Fork 0
chore: test to prod #157
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
chore: test to prod #157
Changes from all commits
Commits
Show all changes
183 commits
Select commit
Hold shift + click to select a range
3254ce1
fix : Update the minimum required Linux kernel version (#221)
Vperiodt 88f42d8
Merge pull request #147 from nudgebee/prod
mayankpande88 bcbb471
fix cgroup handling for Incus containers (#224)
def 85208c9
metrics: enhance the `instance` label uniqueness to avoid collisions
apetruhin 0f55c4a
Merge pull request #228 from coroot/metrics-enhance-instance-label-un…
apetruhin 36d7f25
containers: add support for ZFS filesystem (coroot/coroot#371)
apetruhin 6b15ef1
Merge pull request #229 from coroot/containers-zfs
apetruhin 41c2ef3
fix: fix for external domain resolution (#148)
mayankpande88 6d9279e
Update netDeviceFilterRe to allow enP4p65s0 and enP2p33s0 (#232)
tsndqst f7a2da8
Add support for monitoring eMMC drives (#233)
tsndqst a0f10d4
add FoundationDB application type
def eb43dc0
Merge pull request #235 from coroot/foundationdb_app_type
def b349fee
add support for Oracle Cloud metadata
def 7937399
Merge pull request #236 from coroot/oracle_cloud_support
def 0099b5f
add support for disabling log monitoring via container ENV variable
def ee83bcd
Merge pull request #237 from coroot/disable_log_monitoring
def d29d9ed
cgroup v1: use hierarchical total_* counters for accurate RSS/memory …
def 94fcaf7
Merge pull request #238 from coroot/cgroup_v1_mem
def 4fe3e12
FoundationDB support
def 73630f0
Merge pull request #239 from coroot/fdb_support
def 3888932
ebpf traces: allow disabling traces per container with COROOT_EBPF_TR…
def c7d5d32
ebpf traces: add sampling support
def c71a416
Merge pull request #240 from coroot/ebpf_traces_improvements
def 6a27da6
build(deps): bump github.com/ulikunitz/xz from 0.5.12 to 0.5.14 (#152)
dependabot[bot] 29da74f
build(deps): bump github.com/docker/docker (#151)
dependabot[bot] da8b5a4
grpc: get grpc-status from payload if possible
def 2e9d8aa
Merge pull request #243 from coroot/grpc_status
def aa169a6
add `container_nodejs_event_loop_blocked_time_seconds_total`
def aa81b30
Merge pull request #245 from coroot/nodejs_event_loop_monitoring
def 611166e
read python stats directly from the ebpf map
def d7c8349
Merge pull request #246 from coroot/python_ebpf_map
def 3a7cbbd
add per-container Pressure Stall Information (PSI) metrics
def f331454
Merge pull request #247 from coroot/psi_metrics
def 1f394c0
feat: fix response parsing and llm request tracking
mayankpande88 3ea3fcd
fix: fix for compilation
mayankpande88 ce80ecf
feat: response fragement parsing improvement
mayankpande88 ebe3fd4
fix: fix for compilation
mayankpande88 3629737
fix: fix for verflow
mayankpande88 e085c22
fix: fix for failure
mayankpande88 64413f5
fix: fix for failure
mayankpande88 f3d4ce8
feat: complete LLM observability with DNS resolution fixes
mayankpande88 a7874ba
Merge upstream main branch preserving LLM observability features
mayankpande88 9ed44a0
fix: fix for compile
mayankpande88 7462b2a
fix: fix for failure
mayankpande88 59bdf8b
fix: fix for compile
mayankpande88 0e677ae
fix: fix for failure
mayankpande88 495de92
fix: fix for lint
mayankpande88 ffa1786
fix: fix for compile
mayankpande88 b4e1012
fix: removed http fragement handling
mayankpande88 4cab2ea
fix: fix for failure
mayankpande88 c12d20e
fix: fix for failure
mayankpande88 e4215d1
fix: fix for lint
mayankpande88 dee4379
fix: fix for failure
mayankpande88 a97b39a
fix: fix for failure
mayankpande88 3757b42
fix: fix for panic
mayankpande88 b253f1b
fix: fix for failure
mayankpande88 9a1447b
fix: fix for dns resolution
mayankpande88 9d3025a
fix: fix for parsing
mayankpande88 1470a07
fix: fix for http2 parsing and cpu
mayankpande88 72bd889
fix: fix for failure
mayankpande88 aad70bd
fix: fix for cache init
mayankpande88 4a90e3d
fix: fix for http
mayankpande88 5aa9da9
fix: fix for https traffic handling
mayankpande88 aa960de
fix: fix for ssl lib
mayankpande88 f5d546c
fix: fix for failure
mayankpande88 f1568f4
fix: fix for tls handling
mayankpande88 4bd85b3
fix: fix for garbage request and response
mayankpande88 cf92e0e
fix: fix for request and response handling
mayankpande88 8e83596
fix: removed test file
mayankpande88 491d7ca
fix: fix for request and response handling
mayankpande88 683feff
fix: fix removed unwantd files
mayankpande88 070805e
fix: fix for test and dns mapping
mayankpande88 2cbd7db
fix: fix for dns mapping
mayankpande88 39e716a
fix: fix for external destination name
mayankpande88 19970ac
fix: fix for trace collection failure and logging fixes
mayankpande88 727f832
fix: fix for compile
mayankpande88 911fd8b
fix: fix for orphan code and compilation
mayankpande88 5981326
fix: fix for formatting
mayankpande88 b8c2b8b
fix: fix for invalid utf8 data
mayankpande88 12ea241
fix: fix for parsing
mayankpande88 9e29c13
fix: fix for sanitize http utf
mayankpande88 767e775
fix: fix for actual destination pod name
mayankpande88 2bceae7
fix: fix for pod owner mapping
mayankpande88 bd38f78
fix: fix for invalid utf8
mayankpande88 2b6dd62
perf: optimize eBPF binary parsing with buffer pool
mayankpande88 43c265b
debug: enhance HTTP parsing error logging
mayankpande88 c874e55
Revert "perf: optimize eBPF binary parsing with buffer pool"
mayankpande88 3cf0864
perf: optimize eBPF binary parsing with bytes.NewReader
mayankpande88 ca33eda
Revert "perf: optimize eBPF binary parsing with bytes.NewReader"
mayankpande88 3ec5ef0
fix: clean up inconsistent error messages in eBPF tracer
mayankpande88 558e799
fix: add UTF-8 validation to HTTP parsing pipeline
mayankpande88 b41e7c8
fix: fix for metrics duplication
mayankpande88 9e2fc2a
fix: remove unused variable in registry.go
mayankpande88 531f9eb
fix: resolve eBPF verifier back-edge error in binary detection loop
mayankpande88 e1c0668
fix: resolve remaining eBPF verifier back-edge errors in HTTP validation
mayankpande88 df3130b
fix: fix for failire
mayankpande88 ee94917
fix: fix for failure
mayankpande88 d2f936f
fix: fix for utf8 failure
mayankpande88 fae3110
debug: add logging to see what binary data passes eBPF as HTTP response
mayankpande88 6f7fc62
fix: prevent binary data being parsed as HTTP headers
mayankpande88 3739eb6
feat: implement complete HTTP data capture with process_vm_readv
mayankpande88 c22030c
fix: add minimal HTTPRequestProcessor for backward compatibility
mayankpande88 2b2ee1f
fix: add missing methods to HTTPRequestContext for LLM detection
mayankpande88 9d0afcf
fix: fix for failure
mayankpande88 7e4b01f
enhance: complete HTTP request processing with proper header-body sep…
mayankpande88 7118e40
fix: fix for go routine leaks
mayankpande88 02b63a5
fix: prevent duplicate container metrics registration and fix tracing…
mayankpande88 350dd35
fix: prevent duplicate metrics by centralizing eBPF stats update
mayankpande88 c4778e4
temp: stage current changes before reverting process_vm_readv
mayankpande88 7c76305
Revert "feat: implement complete HTTP data capture with process_vm_re…
mayankpande88 4a53758
fix: redesign L7Stats architecture to eliminate duplicate metrics issue
mayankpande88 a6e45c2
fix: resolve compilation errors after L7Stats architecture change
mayankpande88 7d01db6
fix: fix for label duplication and registry
mayankpande88 4e42957
fix: resolve eBPF l7_event structure mismatch causing EOF errors
mayankpande88 4a19ea1
fix: resolve label cardinality mismatch in L7Stats observe method
mayankpande88 76cdb3b
fix: resolve duplicate network metrics by moving updateStatsFromEbpfM…
mayankpande88 fd574f1
chore: fix Go code formatting
mayankpande88 806f298
enhance: improve DNS mapping and hostname resolution in traces
mayankpande88 945fbf2
fix: fix path high cardanility
mayankpande88 3d76787
fix: removed trace id from metrics
mayankpande88 242d9a1
fix: enhance HTTP path normalization to prevent cardinality explosion
mayankpande88 e9325b7
fix: prevent RabbitMQ traffic misclassification as ClickHouse
mayankpande88 e8eb7b4
fix: resolve RabbitMQ label cardinality mismatch
mayankpande88 5a27ca5
fix: fix for request and headers seperation
mayankpande88 18f2d9a
fix: fix for dns lookup
mayankpande88 0614245
fix: fix for http detection
mayankpande88 16f2420
fix: resolve duplicate network metrics by adding region/zone labels
mayankpande88 cb9d98a
fix: fix for invalid utf
mayankpande88 4c55161
fix: fix for metrics duplication
mayankpande88 6e9fcf7
fix: fix for missing metric
mayankpande88 b728f8b
chore: fix Go code formatting
mayankpande88 0a8a698
fix: fix for invalid utf and clickhouse query detection
mayankpande88 2cfe3be
fix: fix for failure
mayankpande88 aa6a9ee
fix: fix for failire
mayankpande88 c8aec92
fix: fix for failure
mayankpande88 a790750
fix: resolve eBPF verifier error and add psycopg2 SSL library support
mayankpande88 de146ab
fix: fix for failure
mayankpande88 5deab87
fix: resolve eBPF verifier errors by disabling complex iovec processing
mayankpande88 5be3f2c
fix: fix for failure
mayankpande88 d77075b
fix: fix for failure
mayankpande88 6908794
fix: fix for args mismatch
mayankpande88 469cee7
fix: fix for http detection
mayankpande88 6701701
fix: refactor L7 metrics to prevent duplicate collection errors
mayankpande88 db62176
Revert "fix: refactor L7 metrics to prevent duplicate collection errors"
mayankpande88 e96324d
fix: implement protocol-level L7 metrics to prevent duplicate collection
mayankpande88 a312e81
debug: add comprehensive logging to track duplicate metrics collection
mayankpande88 5fc0d04
fix: prevent duplicate metrics by unregistering containers during ID …
mayankpande88 ff2e2cf
fix: completely replace containers during ID conflicts to prevent dup…
mayankpande88 a0f0f7d
fix: resolve duplicate metrics and optimize memory usage
mayankpande88 cacdf97
style: apply gofmt formatting
mayankpande88 aa4d7c0
fix: restore controller resolution in MinimalPod optimization
mayankpande88 a70bffc
feat: implement comprehensive memory optimization to prevent OOM
mayankpande88 0ef6773
feat: make HTTP path normalization configurable and generic
mayankpande88 de9fb60
style: apply gofmt formatting
mayankpande88 ee63fa1
feat: enhance memory optimization with payload size reduction and opt…
mayankpande88 f78a1ca
feat: optimize eBPF memory usage with reduced L7 request tracking
mayankpande88 b4244af
perf: remove frequent debug loggers to reduce memory usage
mayankpande88 a9b45bb
fix: fix for http detection
mayankpande88 bb61dc0
fix: fix for failure
mayankpande88 a42b4e9
fix: fix for http protocol detection
mayankpande88 9a3ac8f
fix: resolve HTTP parsing logic error causing missing traces and CPU …
mayankpande88 c41e590
fix: resolve duplicate TCP metrics causing Prometheus target failures
mayankpande88 4569b1a
fix: ensure service workloads inherit location data from backing pods
mayankpande88 9461bb8
feat: enhance eBPF L7 protocol detection capabilities
mayankpande88 f7fc559
fix: improve L7 protocol detection to prevent RabbitMQ misclassificat…
mayankpande88 aaf2997
feat: comprehensive memory optimization and protocol detection improv…
mayankpande88 264a1db
fix: remove excessive DEBUG logging from container collection
mayankpande88 93e6a33
feat: add comprehensive cardinality analysis and memory protection
mayankpande88 0b35c31
fix: resolve compilation errors in debug_metrics.go
mayankpande88 bfcc252
fix: remove path and method labels from HTTP histogram metrics to red…
mayankpande88 fd7de5d
feat: add grouped status codes for histogram metrics to further reduc…
mayankpande88 fd8db30
fix: release container lock early to eliminate severe lock contention
mayankpande88 e8d25e3
style: fix Go formatting issues
mayankpande88 9d4f275
feat: add comprehensive lock contention debugging and remove debug ov…
mayankpande88 c0562c3
perf: optimize metrics collection and reduce overhead
mayankpande88 41c6c3d
fix: remove unused encoding/json import
mayankpande88 00836a6
Add comprehensive timing logs to Container.Collect() method
mayankpande88 3c5d9b1
perf: optimize collection throttling with atomic operations
mayankpande88 44de62e
style: fix formatting with gofmt
mayankpande88 0fd5884
feat: fix response parsing and llm request tracking (#154)
mayankpande88 21def7d
Merge remote-tracking branch 'origin/test' into test-main-backmerge
mayankpande88 692d744
Merge pull request #156 from nudgebee/test-main-backmerge
mayankpande88 b3f3c6d
Merge pull request #155 from nudgebee/main
mayankpande88 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 2 additions & 0 deletions
2
...ocker-73051af271105c07e1f493b34856a77e665e3b0b4fc72f76c807dfbffeb881bd.scope/cpu.pressure
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,2 @@ | ||
| some avg10=0.00 avg60=0.00 avg300=0.00 total=465907442 | ||
| full avg10=0.00 avg60=0.00 avg300=0.00 total=463529433 |
2 changes: 2 additions & 0 deletions
2
...docker-73051af271105c07e1f493b34856a77e665e3b0b4fc72f76c807dfbffeb881bd.scope/io.pressure
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,2 @@ | ||
| some avg10=0.00 avg60=0.00 avg300=0.05 total=17657662684 | ||
| full avg10=0.00 avg60=0.00 avg300=0.05 total=17636951020 |
2 changes: 2 additions & 0 deletions
2
...er-73051af271105c07e1f493b34856a77e665e3b0b4fc72f76c807dfbffeb881bd.scope/memory.pressure
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,2 @@ | ||
| some avg10=0.00 avg60=0.00 avg300=0.00 total=6937313991 | ||
| full avg10=0.00 avg60=0.00 avg300=0.00 total=6934649214 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| 0::/lxc.payload.first/system.slice/systemd-logind.service |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,85 @@ | ||
| package cgroup | ||
|
|
||
| import ( | ||
| "os" | ||
| "path" | ||
| "strconv" | ||
| "strings" | ||
|
|
||
| "github.com/coroot/coroot-node-agent/common" | ||
| "k8s.io/klog/v2" | ||
| ) | ||
|
|
||
| type PSIStats struct { | ||
| CPUSecondsSome float64 | ||
| CPUSecondsFull float64 | ||
| MemorySecondsSome float64 | ||
| MemorySecondsFull float64 | ||
| IOSecondsSome float64 | ||
| IOSecondsFull float64 | ||
| } | ||
|
|
||
| type PressureTotals struct { | ||
| SomeSecondsTotal float64 | ||
| FullSecondsTotal float64 | ||
| } | ||
|
|
||
| func (cg *Cgroup) PSI() *PSIStats { | ||
| if cg.subsystems[""] == "" { | ||
| return nil | ||
| } | ||
| stats := &PSIStats{} | ||
| for _, controller := range []string{"cpu", "memory", "io"} { | ||
| p, err := cg.readPressure(controller) | ||
| if err != nil { | ||
| if !common.IsNotExist(err) { | ||
| klog.Warningln(err) | ||
| } | ||
| return nil | ||
| } | ||
| switch controller { | ||
| case "cpu": | ||
| stats.CPUSecondsSome = p.SomeSecondsTotal | ||
| stats.CPUSecondsFull = p.FullSecondsTotal | ||
| case "memory": | ||
| stats.MemorySecondsSome = p.SomeSecondsTotal | ||
| stats.MemorySecondsFull = p.FullSecondsTotal | ||
| case "io": | ||
| stats.IOSecondsSome = p.SomeSecondsTotal | ||
| stats.IOSecondsFull = p.FullSecondsTotal | ||
| } | ||
| } | ||
| return stats | ||
| } | ||
|
|
||
| func (cg *Cgroup) readPressure(controller string) (*PressureTotals, error) { | ||
| data, err := os.ReadFile(path.Join(cg2Root, cg.subsystems[""], controller+".pressure")) | ||
| if err != nil { | ||
| return nil, err | ||
| } | ||
| pressure := &PressureTotals{} | ||
| for _, line := range strings.Split(strings.TrimSpace(string(data)), "\n") { | ||
| parts := strings.Fields(line) | ||
| if len(parts) == 0 { | ||
| continue | ||
| } | ||
| kind := parts[0] | ||
| for _, p := range parts[1:] { | ||
| if strings.HasPrefix(p, "total=") { | ||
| vStr := strings.TrimPrefix(p, "total=") | ||
| v, err := strconv.ParseUint(vStr, 10, 64) | ||
| if err != nil { | ||
| return nil, err | ||
| } | ||
| switch kind { | ||
| case "some": | ||
| pressure.SomeSecondsTotal = float64(v) / 1e6 // microseconds to seconds | ||
| case "full": | ||
| pressure.FullSecondsTotal = float64(v) / 1e6 | ||
| } | ||
| break | ||
| } | ||
| } | ||
| } | ||
| return pressure, nil | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,27 @@ | ||
| package cgroup | ||
|
|
||
| import ( | ||
| "path" | ||
| "testing" | ||
|
|
||
| "github.com/stretchr/testify/assert" | ||
| "github.com/stretchr/testify/require" | ||
| ) | ||
|
|
||
| func TestCgroupPSI(t *testing.T) { | ||
| cgRoot = "fixtures/cgroup" | ||
| cg2Root = "fixtures/cgroup" | ||
|
|
||
| cg, _ := NewFromProcessCgroupFile(path.Join("fixtures/proc/400/cgroup")) | ||
| stat := cg.PSI() | ||
| require.NotNil(t, stat) | ||
| assert.Equal(t, float64(465907442)/1e6, stat.CPUSecondsSome) | ||
| assert.Equal(t, float64(463529433)/1e6, stat.CPUSecondsFull) | ||
| assert.Equal(t, float64(6937313991)/1e6, stat.MemorySecondsSome) | ||
| assert.Equal(t, float64(6934649214)/1e6, stat.MemorySecondsFull) | ||
| assert.Equal(t, float64(17657662684)/1e6, stat.IOSecondsSome) | ||
| assert.Equal(t, float64(17636951020)/1e6, stat.IOSecondsFull) | ||
|
|
||
| cg, _ = NewFromProcessCgroupFile(path.Join("fixtures/proc/100/cgroup")) | ||
| assert.Nil(t, cg.PSI()) | ||
| } |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The condition
if len(parts) > 2is confusing.partsis the result ofstrings.SplitN(line, ":", 3), and the code has already ensuredlen(parts)is 3, so this check is always true. It seems to be a typo and was likely intended to beif len(pp) > 1to ensure the path has at least one component after splitting. This change would make the code clearer and more robust.