Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
fff8e47
(#21) tracer 패키지 위치 변경
yungwangoh Jan 2, 2025
27f4702
(#22) javaagent 모듈화
yungwangoh Jan 4, 2025
23e7d42
(#22) javaagent 모듈화
yungwangoh Jan 4, 2025
3a040cf
(#22) java-apm-agent 모듈로 이관
yungwangoh Jan 5, 2025
8afcdde
(#22) java-agent 모듈 삭제
yungwangoh Jan 5, 2025
76c48a9
(#21) plugin 계측 sdk 추가
yungwangoh Jan 6, 2025
8fefff9
(#21) agent tracer 로직 변경 local tracer -> global tracer
yungwangoh Jan 6, 2025
6ec3ed1
(#21) spring webmvc plugin 추가
yungwangoh Jan 6, 2025
cc6bd01
(#21) jdbc plugin 추가
yungwangoh Jan 7, 2025
53d61dc
(#21) AbstractTypeMatcherInstrumentation 세부적인 클래스 네임 받도록 수정
yungwangoh Jan 7, 2025
fc2e1b5
[no issue] readme 와 class 라이센스 및 기여자 기록
yungwangoh Jan 7, 2025
17c330f
(#21) plugin abstract class 로 변경
yungwangoh Jan 7, 2025
b9f6d8f
[no issue] licence 누락 확인
yungwangoh Jan 7, 2025
1e448a8
(#21) spring, jdbc SPI(Service Provider Interface) 등록
yungwangoh Jan 7, 2025
4ef1169
Release v1.1.0 (#37)
yungwangoh Apr 20, 2025
3a4832f
Fix: Failed Release v1.1.0 (#38)
yungwangoh Apr 20, 2025
5f8797e
Fix: Failed Release v1.1.0 (#39)
yungwangoh Apr 20, 2025
1565e9c
Develop v1.1.0 (#40)
yungwangoh Apr 20, 2025
0b69dee
Fix: Failed Release v1.1.0 (#41)
yungwangoh Apr 20, 2025
f8d35f7
[no-issue] git action v1.1.0 release
yungwangoh Apr 20, 2025
f96279a
Merge remote-tracking branch 'origin/v1.1.0' into v1.1.0
yungwangoh Apr 20, 2025
de9dfa5
[no-issue] git action v1.1.0 release
yungwangoh Apr 20, 2025
42ce7f0
[no-issue] git action v1.1.0 release
yungwangoh Apr 20, 2025
4ff29d5
[no-issue] git action v1.1.0 release
yungwangoh Apr 20, 2025
9bba557
[no-issue] git action v1.1.0 release
yungwangoh Apr 20, 2025
39d0ff3
[no-issue] git action v1.1.0 release
yungwangoh Apr 20, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
26 changes: 26 additions & 0 deletions .github/release-drafter-config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name-template: 'v$RESOLVED_VERSION'
tag-template: 'v$RESOLVED_VERSION'
categories:
- title: 'Features'
label: 'enhancement'
- title: 'Fixes'
label: 'bug'
- title: 'Etcetera'
label: 'documentation'
change-template: '- $TITLE #$NUMBER @$AUTHOR '
template: |
## The changes in this version are as follows.
---
$CHANGES
no-changes-template: 'No changes'
version-resolver:
major:
labels:
- '✨ major'
minor:
labels:
- '✨ minor'
patch:
labels:
- '- '✨ patch'
default: patch
56 changes: 29 additions & 27 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,29 @@
name: Java CI/CD with Gradle

on:
pull_request:
types:
- opened
- reopened
- synchronize
- edited
push:
branches:
- 'v*'
- 'master'

jobs:
build:
runs-on: self-hosted
permissions:
contents: write

env:
DB_IP: ${{ secrets.DB_IP }}
DB_NAME: ${{ secrets.DB_NAME }}
USER_NAME: ${{ secrets.USER_NAME }}
PASSWORD: ${{ secrets.PASSWORD }}

steps:
- uses: actions/checkout@v4

Expand All @@ -30,8 +43,14 @@ jobs:
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4.0.0

- name: Set environment for jOOQ generation
run: |
echo "DB_URL=${{ secrets.DB_URL }}" >> $GITHUB_ENV
echo "USER_NAME=${{ secrets.USER_NAME }}" >> $GITHUB_ENV
echo "PASSWORD=${{ secrets.PASSWORD }}" >> $GITHUB_ENV

- name: Build java-agent
run: ./gradlew :java-agent:shadowJar
run: ./gradlew :java-apm-agent:java-agent:shadowJar

- name: Build server
run: ./gradlew :server:build
Expand Down Expand Up @@ -65,34 +84,17 @@ jobs:
with:
tag: ${{ github.ref_name }}
name: Release ${{ github.ref_name }}
body: |
## 🚀 Traffic-Hunter Release: ${{ github.ref_name }}

### 📝 Overview
Traffic-Hunter is an Application Performance Monitoring (APM) tool designed to provide lightweight and efficient performance monitoring for small-scale projects.

### 🔑 Key Features
- `Real-Time Monitoring`: Capture and visualize application metrics and transaction logs in real-time.
- `Easy Configuration`: Easily configure the agent using a simple YAML file, making setup straightforward and user-friendly.
- `Efficient Data Storage`: Leverages [**TimescaleDB**](https://www.timescale.com/) for efficient storage and querying of time-series data, enabling high-performance analytics on metrics and traces.
- `Visualization`: This APM leverages [**Grafana**](https://grafana.com/docs/grafana/latest/) for powerful and customizable visualization of metrics and transaction logs, enabling real-time insights and easy integration into your observability stack.
- `Zero-Code`: Traffic Hunter Agent uses **Java Instrumentation** to modify bytecode at runtime, requiring no code changes from users. Simply attach the agent, and it automatically tracks metrics and traces with zero configuration.

### 📦 Installation
- [**Quick-start**](https://github.com/yungwangoh/traffic_hunter/wiki/Quick%E2%80%90Start)

### 🐛 Known Issues
- Java versions below 21 are not supported.

### 🔮 Future Plans
- Distributed tracing support.
- We plan to provide various agent plugins.
- We plan to transition from WebSocket to gRPC.
- Additional language support for Python and Node.js agents.

draft: false
prerelease: false
token: ${{ secrets.GITHUB_TOKEN }}
artifacts: |
**/traffic-hunter-*.jar
**/traffichunter-*.jar

release-drafter:
runs-on: ubuntu-latest
steps:
- uses: release-drafter/release-drafter@v5
with:
config-name: release-drafter-config.yml
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,4 @@ out/

### VS Code ###
.vscode/
gradle.properties
47 changes: 37 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,18 @@

## Latest Release 🚀

The pre-release version is v1.0.0.
The release version is v1.1.0.

- 2025/04/25 - 1.1.0 version
- 2024/12/30 - 1.0.0 version

### Notes
## Note

About traffic-hunter v1.1.0

- Agent that is v1.0.0 supports only `spring framework 6.x` and `boot 3.x`
- Not supported distributed trace
- We were unable to integrate observability due to the absence of Traffic Hunter Visualization. We will complete and provide the visualization shortly.
- For the time being, **Zipkin** should be used in an in-memory environment. If a **Zipkin** environment is already set up, feel free to use it. Otherwise, use the **in-memory** setup for simple performance testing. We will improve the convenience in the next version—stay tuned!

## Intro. Traffic-Hunter

Expand Down Expand Up @@ -36,31 +41,53 @@ The pre-release version is v1.0.0.

## Overview 👀

- **Application Health Check** - cpu, heap memory, thread, web server, dbcp (database connection pool)
Traffic-Hunter provides full observability support. While you currently need to build your traces using Zipkin,
we’ll soon introduce [**traffic‑hunter‑visualization**](https://github.com/traffic-hunter/traffic-hunter-visualization) to eliminate that inconvenience.

- **Application Metric** - cpu, heap memory, thread, web server, dbcp (database connection pool)

<img width="1440" alt="스크린샷 2024-12-12 오후 10 52 04" src="https://github.com/user-attachments/assets/18866da9-8b64-4ea8-a703-18e23b61d756" />

- **Transaction Logs** - Transaction logs track application requests in real-time, recording executed methods and related information.
- **Trace** - Trace track application requests in real-time, recording executed methods and related information. (Support zipkin)

![log.png](doc/image/trace.jpeg)

<img width="1421" alt="스크린샷 2024-12-12 오후 10 55 37" src="https://github.com/user-attachments/assets/35b09f7e-caf2-4d58-9912-3efefd56bb28" />
- **Logs** - Logs from multiple applications can be centrally managed to enable efficient logging.

![trace.jpeg](doc/image/log.png)

## Version Compatibility 👏

| Java Version | Agent | Server | Notes |
|--------------|-----------------|----------------|-------------------------------------------|
| 21 | ✅ Supported | ✅ Supported | Includes support for advanced features like virtual threads |
| Java Version | Agent | Server | Notes |
|--------------|------------------|----------------|-------|
| 21+ | ✅ Supported | ✅ Supported | |


### Notes
- Java versions below 21 are **not supported**.
- For optimal performance and access to the latest features, use Java 21.
- Ensure both the agent and the server are running compatible Java versions.

## Supported Instrumentation Plugin

| Instrumentation Plugin | Version | Note |
|------------------------|----------|------------------------------------------------------|
| Servlet | 6.0.0+ | Jakarta servlet |
| Spring web-mvc | 6.2.0+ | |
| Spring boot | 3.2.0+ | Supported RestClient,<br/>Not Supported RestTemplate |
| JDBC | Java 21+ | |
| HttpClient | Java 21+ | |
| HttpUrlConnection | Java 21+ | |
| Hibernate | 6.0.0+ | LinkageError Issue, <br/>Not Support |
| Logger | Java 21+ | java.util.Logging |
| LogBack | 1.5.0+ | ch.qos.logback |

## License

```text
The MIT License

Copyright (c) 2024 yungwang-o
Copyright (c) 2024 traffic-hunter.org

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
16 changes: 1 addition & 15 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,24 +1,10 @@
plugins {
id 'java'
id 'org.springframework.boot' version '3.3.4'
id 'io.spring.dependency-management' version '1.1.6'
}

group = 'ygo'
group = 'org.traffichunter'
version = '0.0.1-SNAPSHOT'

java {
toolchain {
languageVersion = JavaLanguageVersion.of(21)
}
}

configurations {
compileOnly {
extendsFrom annotationProcessor
}
}

repositories {
mavenCentral()
}
Expand Down
Binary file added doc/image/log.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/image/trace.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
60 changes: 0 additions & 60 deletions java-agent/build.gradle

This file was deleted.

Loading
Loading