Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 4 additions & 35 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,38 +1,7 @@
# java-profiler-tools
# FlameGraph + Async Profiler as Docker Image

FlameGraph + Async Profiler as docker image
This is a Docker image containing [Brendan Gregg's FlameGraph](https://github.com/brendangregg/FlameGraph) and [Andrei Pangin's Async Profiler](https://github.com/async-profiler/async-profiler).

This is docker image containing [Brendan Gregg's Flame Graph](https://github.com/brendangregg/FlameGraph) as well as [Andrei Pangin's Async Profiler](https://github.com/async-profiler/async-profiler).

This container can be handy when you need to attach to some Java container and perform on the spot profiling.

Usage example can be found [here](https://ember.deltixlab.com/docs/kb/profiling/?_highlight=perf#profiling-ember-with-perf).

## CI/CD

This project uses GitHub Actions for continuous integration and deployment:

### Build Workflow
- **File**: `.github/workflows/docker-build.yml`
- **Triggers**: Push to main/master branch, pull requests, manual dispatch
- **Actions**: Builds the Docker image and runs basic tests
- **No external dependencies required**

### Publish Workflow (Optional)
- **File**: `.github/workflows/docker-publish.yml`
- **Triggers**: Push tags starting with 'v' (e.g., v1.0.0), manual dispatch
- **Actions**: Builds and publishes the Docker image to Docker Hub
- **Required secrets**: `DOCKER_USERNAME` and `DOCKER_PASSWORD`

### Setting up Docker Hub Publishing
If you want to publish to Docker Hub, add these secrets to your GitHub repository:
1. Go to your repository Settings → Secrets and variables → Actions
2. Add `DOCKER_USERNAME` with your Docker Hub username
3. Add `DOCKER_PASSWORD` with your Docker Hub access token

Then create a tag to trigger the publish workflow:
```bash
git tag v1.0.0
git push origin v1.0.0
```
The container is especially useful for profiling Java applications in remote or production environments where installing additional tools is undesirable or restricted. In such cases, the container can be launched on demand, attached to a running Java process, and removed afterward without leaving a footprint.

Usage example can be found in [this article](https://ember.deltixlab.com/docs/kb/profiling/?_highlight=perf#profiling-ember-with-perf).
27 changes: 27 additions & 0 deletions ci-cd.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
## CI/CD

This project uses GitHub Actions for continuous integration and deployment:

### Build Workflow
- **File**: `.github/workflows/docker-build.yml`
- **Triggers**: Push to main/master branch, pull requests, manual dispatch
- **Actions**: Builds the Docker image and runs basic tests
- **No external dependencies required**

### Publish Workflow (Optional)
- **File**: `.github/workflows/docker-publish.yml`
- **Triggers**: Push tags starting with 'v' (e.g., v1.0.0), manual dispatch
- **Actions**: Builds and publishes the Docker image to Docker Hub
- **Required secrets**: `DOCKER_USERNAME` and `DOCKER_PASSWORD`

### Setting up Docker Hub Publishing
If you want to publish to Docker Hub, add these secrets to your GitHub repository:
1. Go to your repository Settings → Secrets and variables → Actions
2. Add `DOCKER_USERNAME` with your Docker Hub username
3. Add `DOCKER_PASSWORD` with your Docker Hub access token

Then create a tag to trigger the publish workflow:
```bash
git tag v1.0.0
git push origin v1.0.0
```