diff --git a/docs/sources/configure-client/language-sdks/java.md b/docs/sources/configure-client/language-sdks/java.md index 73fd2f2e3f..4fb4513ac1 100644 --- a/docs/sources/configure-client/language-sdks/java.md +++ b/docs/sources/configure-client/language-sdks/java.md @@ -116,26 +116,25 @@ for configuration in multiple sources: system properties, environment variables, The Java integration supports JFR format to be able to support multiple events (JFR is the only output format that supports [multiple events in `async-profiler`](https://github.com/jvm-profiling-tools/async-profiler#multiple-events)). There are several environment variables that define how multiple event configuration works: - -|Flag |Description | -|-----------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -|`PYROSCOPE_FORMAT` |sets the profiler output format. The default is `collapsed`, but in order to support multiple formats it must be set to `jfr`. | -|`PYROSCOPE_PROFILER_EVENT` |sets the profiler event. With JFR format enabled, this event refers to one of the possible CPU profiling events: `itimer`, `cpu`, `wall`. The default is `itimer`. | -|`PYROSCOPE_PROFILER_ALLOC` |sets the allocation threshold to register the events, in bytes (equivalent to `--alloc=` in `async-profiler`). The default value is `""` - empty string, which means that allocation profiling is disabled. Setting it to `0` will register all the events. | -|`PYROSCOPE_PROFILER_LOCK` |sets the lock threshold to register the events, in nanoseconds (equivalent to `--lock=` in `async-profiler`). The default value is `""` - empty string, which means that lock profiling is disabled. Setting it to `0` will register all the events. | -|`PYROSCOPE_CONFIGURATION_FILE` |sets an additional properties configuration file. The default value is `pyroscope.properties`. | -|`PYROSCOPE_BASIC_AUTH_USER` |HTTP Basic authentication username. The default value is `""` - empty string, no authentication. | -|`PYROSCOPE_BASIC_AUTH_PASSWORD` |HTTP Basic authentication password. The default value is `""` - empty string, no authentication. | -|`PYROSCOPE_TENANT_ID` |pyroscope tenant ID, passed as X-Scope-OrgID http header. The default value is `""` - empty string, no tenant ID. | -|`PYROSCOPE_HTTP_HEADERS` |extra http headers in json format, for example: `{"X-Header": "Value"}`. The default value is `{}` - no extra headers. | -|`PYROSCOPE_LABELS` |sets static labels in the form of comma separated `key=value` pairs. The default value is `""` - empty string, no labels. | -|`PYROSCOPE_LOG_LEVEL` |determines the level of verbosity for Pyroscope's logger. Available options include `debug`, `info`, `warn`, and `error`. The default value is set to `info`. | -|`PYROSCOPE_PUSH_QUEUE_CAPACITY` |specifies the size of the ingestion queue that temporarily stores profiling data in memory during network outages. The default value is set to 8. | -|`PYROSCOPE_INGEST_MAX_TRIES` |sets the maximum number of times to retry an ingestion API call in the event of failure. A value of -1 indicates that the retries will continue indefinitely. The default value is set to 8. | -|`PYROSCOPE_EXPORT_COMPRESSION_LEVEL_JFR` |sets the level of GZIP compression applied to uploaded JFR files. This option accepts values of `NO_COMPRESSION`, `BEST_SPEED`, `BEST_COMPRESSION`, and `DEFAULT_COMPRESSION`. | -|`PYROSCOPE_EXPORT_COMPRESSION_LEVEL_LABELS`|operates similarly to `PYROSCOPE_EXPORT_COMPRESSION_LEVEL_JFR`, but applies to the dynamic labels part. The default value is set to `BEST_SPEED`. | -|`PYROSCOPE_ALLOC_LIVE` |is a boolean value that enables live object profiling when set to true. It is disabled by default. | -|`PYROSCOPE_GC_BEFORE_DUMP` |is a boolean value that executes a `System.gc()` command before dumping the profile when set to true. This option may be useful for live profiling, but is disabled by default. | +| Flag | Description | +|---------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `PYROSCOPE_FORMAT` | sets the profiler output format. The default is `collapsed`, but in order to support multiple formats it must be set to `jfr`. | +| `PYROSCOPE_PROFILER_EVENT` | sets the profiler event. With JFR format enabled, this event refers to one of the possible CPU profiling events: `itimer`, `cpu`, `wall`. The default is `itimer`. | +| `PYROSCOPE_PROFILER_ALLOC` | sets the allocation threshold to register the events, in bytes (equivalent to `--alloc=` in `async-profiler`). The default value is `""` - empty string, which means that allocation profiling is disabled. Setting it to 0 will register every event, causing significant CPU and network overhead, making it not suitable production environments. We recommend setting a starting value of 512k and adjusting it as needed. | +| `PYROSCOPE_PROFILER_LOCK` | sets the lock threshold to register the events, in nanoseconds (equivalent to `--lock=` in `async-profiler`). The default value is `""` - empty string, which means that lock profiling is disabled. Setting it to 0 will register every event, causing significant CPU and network overhead, making it not suitable production environments. We recommend setting a starting value of 10ms and adjusting it as needed. | +| `PYROSCOPE_CONFIGURATION_FILE` | sets an additional properties configuration file. The default value is `pyroscope.properties`. | +| `PYROSCOPE_BASIC_AUTH_USER` | HTTP Basic authentication username. The default value is `""` - empty string, no authentication. | +| `PYROSCOPE_BASIC_AUTH_PASSWORD` | HTTP Basic authentication password. The default value is `""` - empty string, no authentication. | +| `PYROSCOPE_TENANT_ID` | pyroscope tenant ID, passed as X-Scope-OrgID http header. The default value is `""` - empty string, no tenant ID. | +| `PYROSCOPE_HTTP_HEADERS` | extra http headers in json format, for example: `{"X-Header": "Value"}`. The default value is `{}` - no extra headers. | +| `PYROSCOPE_LABELS` | sets static labels in the form of comma separated `key=value` pairs. The default value is `""` - empty string, no labels. | +| `PYROSCOPE_LOG_LEVEL` | determines the level of verbosity for Pyroscope's logger. Available options include `debug`, `info`, `warn`, and `error`. The default value is set to `info`. | +| `PYROSCOPE_PUSH_QUEUE_CAPACITY` | specifies the size of the ingestion queue that temporarily stores profiling data in memory during network outages. The default value is set to 8. | +| `PYROSCOPE_INGEST_MAX_TRIES` | sets the maximum number of times to retry an ingestion API call in the event of failure. A value of -1 indicates that the retries will continue indefinitely. The default value is set to 8. | +| `PYROSCOPE_EXPORT_COMPRESSION_LEVEL_JFR` | sets the level of GZIP compression applied to uploaded JFR files. This option accepts values of `NO_COMPRESSION`, `BEST_SPEED`, `BEST_COMPRESSION`, and `DEFAULT_COMPRESSION`. | +| `PYROSCOPE_EXPORT_COMPRESSION_LEVEL_LABELS` | operates similarly to `PYROSCOPE_EXPORT_COMPRESSION_LEVEL_JFR`, but applies to the dynamic labels part. The default value is set to `BEST_SPEED`. | +| `PYROSCOPE_ALLOC_LIVE` | is a boolean value that enables live object profiling when set to true. It is disabled by default. | +| `PYROSCOPE_GC_BEFORE_DUMP` | is a boolean value that executes a `System.gc()` command before dumping the profile when set to true. This option may be useful for live profiling, but is disabled by default. | ## Sending data to Pyroscope OSS or Grafana Cloud Profiles with Pyroscope java SDK