{"id":21509899,"url":"https://github.com/meowv/httptracker","last_synced_at":"2025-04-09T17:14:36.251Z","repository":{"id":115855057,"uuid":"280335780","full_name":"Meowv/HttpTracker","owner":"Meowv","description":"📊 HttpTracker 是一个基于 .NET Standard 的 C#库，它是一种收集 HTTP 请求的解决方案，旨在收集我们用 .NET Core 开发的 WebApi 项目中的接口请求日志，将所有的 HTTP 请求进行拦截并保存在任意数据库中，用于后续的分析工作。HttpTracker 支持将数据存储在大部分主流数据库中，收集到的数据将自动以年月进行分表存储，可以选择你喜爱的任意存储方式。","archived":false,"fork":false,"pushed_at":"2023-05-05T21:39:33.000Z","size":373,"stargazers_count":20,"open_issues_count":2,"forks_count":9,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-09T17:14:27.042Z","etag":null,"topics":["dotnetcore","http","httptracker","tracker"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Meowv.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-07-17T05:34:42.000Z","updated_at":"2024-09-23T06:58:09.000Z","dependencies_parsed_at":null,"dependency_job_id":"36e0d734-1f8f-4c1f-a7a6-52427a5381da","html_url":"https://github.com/Meowv/HttpTracker","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Meowv%2FHttpTracker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Meowv%2FHttpTracker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Meowv%2FHttpTracker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Meowv%2FHttpTracker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Meowv","download_url":"https://codeload.github.com/Meowv/HttpTracker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248074924,"owners_count":21043490,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dotnetcore","http","httptracker","tracker"],"created_at":"2024-11-23T21:33:44.626Z","updated_at":"2025-04-09T17:14:36.232Z","avatar_url":"https://github.com/Meowv.png","language":"C#","readme":"\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/Meowv/HttpTracker/master/logo.png\" width=\"150\" /\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eHttpTracker - Http请求跟踪器\u003c/h1\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[![HttpTracker](https://img.shields.io/nuget/v/HttpTracker.svg?color=red\u0026style=flat-square)](https://www.nuget.org/packages/HttpTracker/)\n[![HttpTracker](https://img.shields.io/nuget/dt/HttpTracker.svg?style=flat-square)](https://www.nuget.org/packages/HttpTracker/)\n[![HttpTracker](https://img.shields.io/badge/License-MIT-blue?style=flat-square)](https://github.com/Meowv/HttpTracker/blob/master/LICENSE)\n\n\u003c/div\u003e\n\n## ✨ Introduction\n\n`HttpTracker` 是一个基于`.NET Standard`的`C#`库，它是一种收集`HTTP`请求的解决方案，旨在收集我们用`.NET Core`开发的`WebApi`项目中的接口请求日志，将所有的`HTTP`请求进行拦截并保存在任意数据库中，用于后续的分析工作。\n\n`HttpTracker` 支持将数据存储在大部分主流数据库中，收集到的数据将自动以年月进行分表存储，可以选择你喜爱的任意存储方式。\n\n## 🆕 Getting Started\n\n### 1️⃣ NuGet\n\n你可以运行以下下命令在你的项目中安装 `HttpTracker`。\n\n`PM\u003e Install-Package HttpTracker`\n\n`HttpTracker` 提供了 `Elasticsearch`，`MongoDb`，`SqlServer`，`MySql`，`PostgreSQL`，`SQLite`，`Oracle` 的扩展作为数据库存储，可以按需选择存储方式。\n\nStorage | Nuget| Is it done?\n---|---|---\n`Elasticsearch` | `PM\u003e Install-Package HttpTracker.Elasticsearch` | ✔\n`MongoDb` | `PM\u003e Install-Package HttpTracker.MongoDb` | ✔\n`SqlServer` | `PM\u003e Install-Package HttpTracker.SqlServer` | ✔\n`MySql` | `PM\u003e Install-Package HttpTracker.MySql` | ✔\n`SQLite` | `PM\u003e Install-Package HttpTracker.SQLite` | ✔\n`PostgreSQL` | `PM\u003e Install-Package HttpTracker.PostgreSQL` | ❌\n`Oracle` | `PM\u003e Install-Package HttpTracker.Oracle` | ❌\n\n### 2️⃣ Configuration\n\n首先配置 `HttpTracker` 到 `Startup.cs` 文件中。\n\n在 `ConfigureServices` 中添加。\n\n```c#\npublic void ConfigureServices(IServiceCollection services)\n{\n    ...\n\n    services.AddControllers();\n\n    services.AddHttpTracker().UseSQLite();\n\n    ...\n}\n```\n\n同时 `services.AddHttpTracker().UseSQLite();` 也支持重载，使用 `Action\u003cOption\u003e` 方式传递参数。\n\n```c#\npublic void ConfigureServices(IServiceCollection services)\n{\n    ...\n\n    services.AddHttpTracker(options =\u003e\n    {\n        options.Disabled = false;\n        options.ServerName = \"...\";\n        ...\n    }).UseSQLite(options =\u003e\n    {\n        options.ConnectionString = \"...\";\n    });\n\n    ....\n}\n```\n\n如果使用默认的选项配置需要在 `appsettings.json` 中添加 `HttpTracker` 属性，如下：\n\n```json\n{\n  \"HttpTracker\": {\n    \"Disabled\": false,\n    \"ServerName\": \"...\",\n    \"ServerHost\": \"localhost\",\n    \"ServerPort\": 5000,\n    \"FilterRequest\": [],\n    \"Storage\": {\n      \"Elasticsearch\": {\n        \"Nodes\": [ \"http://localhost:9200\" ],\n        \"Username\": \"\",\n        \"Password\": \"\"\n      },\n      \"MongoDb\": {\n        \"Services\": [ \"localhost:27017\" ],\n        \"ConnectionMode\": \"\",\n        \"DatabaseName\": \"\",\n        \"Username\": \"\",\n        \"password\": \"\"\n      },\n      \"SQLServer\": {\n        \"ConnectionString\": \"...\"\n      },\n      \"MySql\": {\n        \"ConnectionString\": \"...\"\n      },\n      \"PostgreSQL\": {\n        \"ConnectionString\": \"...\"\n      },\n      \"Oracle\": {\n        \"ConnectionString\": \"...\"\n      },\n      \"SQLite\": {\n        \"ConnectionString\": \"...\"\n      }\n    },\n  }\n}\n```\n\n在 `Configure` 方法中使用。\n\n```c#\npublic void Configure(IApplicationBuilder app, IWebHostEnvironment env)\n{\n    ...\n\n    app.UseRouting();\n\n    app.UseHttpTracker();\n\n    ...\n}\n```\n\n注意将 `app.UseHttpTracker();` 放在 `app.UseRouting();` 后面使用。\n\n### 3️⃣ Dashboard\n\n`HttpTracker` 同时集成了一个仪表盘，用于将收集来的请求数据用于分析展示，Dashboard 计划采用 [Blazor](https://blazor.net/) 进行开发。\n\n使用下面命令安装 Dashboard：\n\n`PM\u003e Install-Package HttpTracker.Dashboard`\n\n然后和 `HttpTracker` 使用方式一样，分别 `AddHttpTrackerDashboard()`、`UseHttpTrackerDashboard()` 即可。\n\n仪表盘默认的访问地址是：~/httptracker，你可以在配置项中进行修改路径后缀为其他的名字，同时仪表盘的访问默认开启了 BasicAuthentication 认证，默认的账号密码为：httptracker/httptracker，如果你不想开启认证也可以手动关闭。\n\n## 🤝 Contributing\n\n因个人能力以及时间精力有限，欢迎有兴趣的朋友们一起参与本项目的开发工作。\n\n## 📑 TODO\n\n- [x] HTTP请求跟踪器中间件 SDK\n- [x] 数据存储 SDK，Elasticsearch 支持\n- [x] 数据存储 SDK，MongoDb 支持\n- [x] 数据存储 SDK，SqlServer 支持\n- [x] 数据存储 SDK，MySql 支持\n- [x] 数据存储 SDK，SQLite 支持\n- [ ] 数据存储 SDK，PostgreSQL 支持\n- [ ] 数据存储 SDK，Oracle 支持\n- [x] 仪表盘 SDK\n- [x] 仪表盘集成 BasicAuthentication 认证\n- [x] 仪表盘 API，自动发现\n- [ ] 基于 Blazor 的仪表盘开发\n- [ ] 数据存储消息队列 SDK，RabbitMQ 支持\n- [ ] 数据存储消息队列 SDK，Kafka 支持\n- [ ] ...\n\n## ⚡ Sample\n\n[HttpTracker.Demo](https://github.com/Meowv/HttpTracker/tree/master/samples/HttpTracker.Demo)\n\n## ☀️ License\n\nThis project is licensed under [MIT](LICENSE).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeowv%2Fhttptracker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmeowv%2Fhttptracker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeowv%2Fhttptracker/lists"}