mirror of
https://github.com/grafana/alloy.git
synced 2025-11-05 13:28:02 +08:00
* pyroscope.java: decouple archive extraction from the profiler, remove Profiler(use Distribution).
* playground
* fix args
* cleanup
* todo
* review fix
* review fixes
* pyroscope.java: add integration tests (#4454)
* pyroscope.java: add integration tests
fix package name
Revert "pyroscope.java: Fix java log level parameter (#4440)"
This reverts commit 4909877427.
move the helper to pyroscope package
* second integration test
* revert compose tests
* revert unneeded changes
* fix buildtag
* fix buildtag
* improve start time for pyroscope container
* skip integration test if it's not pyoroscope job
* update makefile
* pyroscope.java: Fix java log level parameter (#4440)
* pyroscope.java: Fix java log level parameter
The version bundled of the async profiler has no loglevel parameter:
```
ts=2025-09-16T08:16:50.898924708Z level=error component_path=/profiling.feature component_id=pyroscope.java.java_pods pid=1184752 err="failed to start: asprof failed to run: asprof failed to run /tmp/alloy-asprof-ae0261b1093f2bc4df44a87300fef98dcdebccb5/bin/asprof: exit status 1 Unrecognized option: --loglevel\n"
```
* Quiet is not a valid argument for the async-profiler cli
It can only be used for attaching using agent
* remove comments
* fix
---------
Co-authored-by: Christian Simon <simon@swine.de>
---------
Co-authored-by: Christian Simon <simon@swine.de>
37 lines
968 B
Go
37 lines
968 B
Go
//go:build linux && (arm64 || amd64)
|
|
|
|
package testutil
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/go-kit/log"
|
|
"github.com/grafana/alloy/internal/component/pyroscope"
|
|
"github.com/grafana/alloy/internal/component/pyroscope/write"
|
|
"github.com/prometheus/client_golang/prometheus"
|
|
"go.opentelemetry.io/otel/trace/noop"
|
|
)
|
|
|
|
// CreateWriteComponent creates a pyroscope.write component that forwards to the given endpoint
|
|
func CreateWriteComponent(l log.Logger, reg prometheus.Registerer, endpoint string) (pyroscope.Appendable, error) {
|
|
var receiver pyroscope.Appendable
|
|
e := write.GetDefaultEndpointOptions()
|
|
e.URL = endpoint
|
|
|
|
_, err := write.New(
|
|
log.With(l, "component", "pyroscope.write"),
|
|
noop.Tracer{},
|
|
reg,
|
|
func(exports write.Exports) {
|
|
receiver = exports.Receiver
|
|
},
|
|
"test",
|
|
"",
|
|
write.Arguments{Endpoints: []*write.EndpointOptions{&e}},
|
|
)
|
|
if err != nil {
|
|
return nil, fmt.Errorf("error creating write component: %w", err)
|
|
}
|
|
return receiver, nil
|
|
}
|