258 Commits

Author SHA1 Message Date
9602034f9d feat(metrics): improve metrics handling with safe type conversions and enhanced request statistics
- Introduced safe type conversion functions to prevent panics when accessing metrics data.
- Updated MetricsHandler to utilize these functions for retrieving active requests, total requests, total errors, and average response time.
- Enhanced error rate calculation to avoid division by zero.
- Refactored buffer pool management in ProxyHandler for better memory handling.
- Improved target URL determination logic based on file extensions for more flexible proxy behavior.
2024-12-03 18:11:29 +08:00
1db0e6ae98 fix(metrics): update SQLite driver usage in MetricsDB initialization
- Changed the SQLite driver from "sqlite3" to "sqlite" in the NewMetricsDB function for improved compatibility with the new driver.
- This change aligns with the recent dependency update to modernc.org/sqlite, enhancing performance and stability.
2024-12-03 17:59:20 +08:00
54053f3a92 chore(dependencies): update SQLite driver and add indirect dependencies
- Replaced `github.com/mattn/go-sqlite3` with `modernc.org/sqlite` for improved compatibility and performance.
- Updated `go.mod` and `go.sum` to include several indirect dependencies for enhanced functionality and stability.
- Refactored import statements in `metrics.go` and `db.go` to reflect the new SQLite driver.
2024-12-03 17:57:31 +08:00
3962799980 feat(config): update alert configurations and error rate thresholds
- Increased ErrorRate threshold from 0.5 to 0.8 for stricter alerting.
- Added AlertInterval setting to config for customizable notification intervals.
- Updated latency thresholds for small, medium, and large files to improve performance monitoring.
- Enhanced metrics handling to incorporate new alert configurations in the system.
2024-12-03 17:54:45 +08:00
68c27b544b feat(metrics): enhance metrics functionality and configuration
- Added new dependency on github.com/mattn/go-sqlite3 for improved metrics storage.
- Updated main.go to initialize metrics collector with a new database path and configuration settings.
- Enhanced config.json to include additional metrics settings such as alert configurations and latency thresholds.
- Refactored internal metrics handling to support new metrics structures and improve data retrieval.
- Introduced a new metrics history endpoint for retrieving historical data, enhancing monitoring capabilities.
- Improved UI for metrics dashboard to include historical data visualization options.
2024-12-03 17:48:11 +08:00
d4af4c4d31 feat(metrics): enhance metrics collection and UI with top referers tracking
- Added support for tracking top referers in the metrics collector, allowing for better insights into request sources.
- Updated MetricsHandler to include top referers in the metrics response.
- Enhanced the metrics UI to display a new section for the top 10 referers, improving visibility into traffic sources.
- Refactored request recording to capture referer information in the collector for comprehensive statistics.
2024-11-30 22:55:31 +08:00
9be13ce0ef feat(deployment): add SSH deployment commands to Docker build workflow
- Integrated SSH action to automate deployment commands for the proxy-go service.
- Added steps to pull the latest Docker image, stop and remove the existing container, and restart the service using Docker Compose.
- Enhanced the workflow for smoother deployment processes.
2024-11-30 22:27:57 +08:00
040b01f4a4 feat(metrics): integrate comprehensive metrics tracking across handlers
- Enhanced metrics collection in ProxyHandler, MirrorProxyHandler, and FixedPathProxyMiddleware.
- Introduced a centralized metrics collector to streamline request tracking and statistics reporting.
- Updated MetricsHandler to utilize new metrics structure, including total bytes, requests per second, and error rates.
- Improved documentation in readme.md to reflect new features and usage instructions.
- Added support for metrics monitoring at `/metrics/ui` for better visibility into proxy performance.
2024-11-30 22:26:11 +08:00
b8d7659aa9 feat(metrics): enhance metrics reporting with uptime, error rate calculation, and recent requests retrieval
- Added uptime and error rate metrics to the MetricsHandler.
- Introduced helper functions for calculating error rates and retrieving recent requests.
- Improved latency formatting in the metrics template for better readability.
- Streamlined the metrics data structure to include requests per second and recent request logs.
2024-11-30 21:50:32 +08:00
7b6a193434 feat(metrics): enhance metrics UI with detailed traffic statistics, status code breakdown, and recent requests overview 2024-11-30 21:42:30 +08:00
bb830658e0 feat(metrics): add comprehensive metrics display for uptime, request counts, and performance indicators 2024-11-30 21:23:17 +08:00
ef97e833e6 refactor(main): streamline metrics route handling in main function 2024-11-30 21:19:05 +08:00
e9e932b0b7 feat(main): add metrics routes for enhanced monitoring and remove duplicate route definitions 2024-11-30 21:14:16 +08:00
8770d79bb8 feat(docker-compose, config, handler): enhance deployment configuration, add metrics support, and improve proxy handling
- Updated docker-compose.yml to include resource limits and health checks for the service.
- Modified go.mod and go.sum to include the new dependency on golang.org/x/time.
- Enhanced main.go to add new metrics routes for monitoring.
- Updated config.json to include metrics configuration with password and token expiry.
- Refactored internal/config to implement a ConfigManager for dynamic configuration loading.
- Improved internal/handler to utilize a shared HTTP client and added metrics tracking for requests.
2024-11-30 21:11:05 +08:00
7ee1b0efb5 refactor(internal/handler): optimize image request handling and cloudflare headers 2024-11-17 10:47:41 +08:00
74189ed602 feat(internal/handler): optimize image request handling by setting optimized Accept headers and Cloudflare-specific headers 2024-11-17 10:41:26 +08:00
2ce1b02df9 Merge branch 'main' of https://github.com/woodchen-ink/proxy-go 2024-11-17 10:36:36 +08:00
1e65ccad58 refactor(internal/handler): simplify HTTP client configuration and remove strict CSP header 2024-11-17 10:36:34 +08:00
wood chen
1bf60702c2
Update readme.md 2024-11-17 09:58:43 +08:00
c71698e5ad refactor(internal/handler): optimize image request handling based on Accept header 2024-11-17 09:38:01 +08:00
e4d7a16f99 refactor(internal/handler): optimize image request handling and headers 2024-11-17 09:07:14 +08:00
fe6d604600 feat(internal/handler/proxy): enhance proxy handler to handle image requests and important headers
feat(internal/utils): add IsImageRequest function to identify image requests
2024-11-17 09:01:19 +08:00
17f9692ce6 refactor(config): optimize extension mapping handling and add utility methods 2024-11-17 08:24:57 +08:00
c2ba3e4d3d feat(config): add UnmarshalJSON method and update NewProxyHandler parameter type 2024-11-17 08:15:29 +08:00
74280e215e 新增支持: 按不同文件回源不同地址 2024-11-17 08:12:04 +08:00
2653014c89 refactor(handler): enhance mirror proxy handler with URL parsing and CORS headers 2024-11-13 19:50:50 +08:00
a7753f90d5 feat(internal/handler): add CORS support and handle OPTIONS requests in MirrorProxyHandler 2024-11-13 18:24:48 +08:00
2f0be5f38d feat(handler): add mirror proxy handler for URL prefix "/mirror/" 2024-11-13 17:50:06 +08:00
073d364695 style(internal/handler, internal/middleware): Refactor logging format for consistency and clarity 2024-11-03 08:33:38 +08:00
eda76c1683 refactor(internal/handler, internal/middleware): improve access log format and content 2024-11-03 08:10:45 +08:00
3c380ef5e9 refactor(internal/handler, internal/middleware): Move getClientIP and formatBytes to utils package 2024-10-31 08:38:07 +08:00
c2c6e14736 refactor(main): update handler matching logic to use function instead of prefix 2024-10-31 08:24:26 +08:00
b1b6a430cd refactor(internal): improve logging and byte format in proxy handlers 2024-10-31 08:07:03 +08:00
8f2c035e93 feat(config, middleware): add fixed paths configuration and proxy middleware 2024-10-31 07:44:54 +08:00
830eb864ef refactor(main): improve CDNJS path matching logic 2024-10-31 07:21:06 +08:00
06f6011b05 feat(middleware): add CDNJS middleware for handling specific paths 2024-10-31 07:15:48 +08:00
db003a3ae1 Merge branch 'main' of https://github.com/woodchen-ink/proxy-go 2024-10-31 01:26:37 +08:00
7af9c7cbc9 chore(Docker): simplify timezone setup and use environment variable for timezone 2024-10-31 01:26:34 +08:00
wood chen
a29fc15841
Create LICENSE 2024-10-31 00:39:12 +08:00
wood chen
569ae91e0a
Create dependabot.yml 2024-10-30 11:19:52 +08:00
78f9d431bc docs: Update configuration documentation and disable compression algorithms
Disable Gzip and Brotli compression algorithms in config.json and update readme.md accordingly
2024-10-30 11:18:13 +08:00
594cd0263e docs: Update README with new features and tips 2024-10-30 09:50:37 +08:00
4b902b5d92 refactor(handler): improve URL encoding and disable response compression 2024-10-30 09:40:02 +08:00
110f1efe83 chore(workflow): remove date step from docker build and update proxy.go
Remove unnecessary date step from docker build workflow and simplify proxy.go code
2024-10-30 09:23:08 +08:00
62b82bfb5a feat(internal/handler): enhance proxy handler to preserve compression and content type 2024-10-30 09:13:36 +08:00
d8e9b90105 fix(internal/handler): add URL parsing and update headers for proxy requests 2024-10-30 09:01:31 +08:00
3ea86189b1 feat(internal/handler): add logging and streaming for proxy handler 2024-10-30 08:37:40 +08:00
39605e0033 refactor(cmd/proxy): consolidate main function into single file 2024-10-30 07:44:29 +08:00
9fa26930ef Merge branch 'main' of https://github.com/woodchen-ink/proxy-go 2024-10-30 07:43:20 +08:00
723b73d748 feat: add compression support and update deployment workflow
add brotli and gzip compression support, update docker-compose and deployment script
2024-10-30 07:43:17 +08:00