Git Product home page Git Product logo

meowv / httptracker Goto Github PK

View Code? Open in Web Editor NEW
19.0 2.0 9.0 373 KB

📊 HttpTracker 是一个基于 .NET Standard 的 C#库,它是一种收集 HTTP 请求的解决方案,旨在收集我们用 .NET Core 开发的 WebApi 项目中的接口请求日志,将所有的 HTTP 请求进行拦截并保存在任意数据库中,用于后续的分析工作。HttpTracker 支持将数据存储在大部分主流数据库中,收集到的数据将自动以年月进行分表存储,可以选择你喜爱的任意存储方式。

License: MIT License

C# 96.39% PowerShell 1.24% HTML 2.11% CSS 0.26%
http tracker dotnetcore httptracker

httptracker's Introduction

HttpTracker - Http请求跟踪器

HttpTracker HttpTracker HttpTracker

✨ Introduction

HttpTracker 是一个基于.NET StandardC#库,它是一种收集HTTP请求的解决方案,旨在收集我们用.NET Core开发的WebApi项目中的接口请求日志,将所有的HTTP请求进行拦截并保存在任意数据库中,用于后续的分析工作。

HttpTracker 支持将数据存储在大部分主流数据库中,收集到的数据将自动以年月进行分表存储,可以选择你喜爱的任意存储方式。

🆕 Getting Started

1️⃣ NuGet

你可以运行以下下命令在你的项目中安装 HttpTracker

PM> Install-Package HttpTracker

HttpTracker 提供了 ElasticsearchMongoDbSqlServerMySqlPostgreSQLSQLiteOracle 的扩展作为数据库存储,可以按需选择存储方式。

Storage Nuget Is it done?
Elasticsearch PM> Install-Package HttpTracker.Elasticsearch
MongoDb PM> Install-Package HttpTracker.MongoDb
SqlServer PM> Install-Package HttpTracker.SqlServer
MySql PM> Install-Package HttpTracker.MySql
SQLite PM> Install-Package HttpTracker.SQLite
PostgreSQL PM> Install-Package HttpTracker.PostgreSQL
Oracle PM> Install-Package HttpTracker.Oracle

2️⃣ Configuration

首先配置 HttpTrackerStartup.cs 文件中。

ConfigureServices 中添加。

public void ConfigureServices(IServiceCollection services)
{
    ...

    services.AddControllers();

    services.AddHttpTracker().UseSQLite();

    ...
}

同时 services.AddHttpTracker().UseSQLite(); 也支持重载,使用 Action<Option> 方式传递参数。

public void ConfigureServices(IServiceCollection services)
{
    ...

    services.AddHttpTracker(options =>
    {
        options.Disabled = false;
        options.ServerName = "...";
        ...
    }).UseSQLite(options =>
    {
        options.ConnectionString = "...";
    });

    ....
}

如果使用默认的选项配置需要在 appsettings.json 中添加 HttpTracker 属性,如下:

{
  "HttpTracker": {
    "Disabled": false,
    "ServerName": "...",
    "ServerHost": "localhost",
    "ServerPort": 5000,
    "FilterRequest": [],
    "Storage": {
      "Elasticsearch": {
        "Nodes": [ "http://localhost:9200" ],
        "Username": "",
        "Password": ""
      },
      "MongoDb": {
        "Services": [ "localhost:27017" ],
        "ConnectionMode": "",
        "DatabaseName": "",
        "Username": "",
        "password": ""
      },
      "SQLServer": {
        "ConnectionString": "..."
      },
      "MySql": {
        "ConnectionString": "..."
      },
      "PostgreSQL": {
        "ConnectionString": "..."
      },
      "Oracle": {
        "ConnectionString": "..."
      },
      "SQLite": {
        "ConnectionString": "..."
      }
    },
  }
}

Configure 方法中使用。

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    ...

    app.UseRouting();

    app.UseHttpTracker();

    ...
}

注意将 app.UseHttpTracker(); 放在 app.UseRouting(); 后面使用。

3️⃣ Dashboard

HttpTracker 同时集成了一个仪表盘,用于将收集来的请求数据用于分析展示,Dashboard 计划采用 Blazor 进行开发。

使用下面命令安装 Dashboard:

PM> Install-Package HttpTracker.Dashboard

然后和 HttpTracker 使用方式一样,分别 AddHttpTrackerDashboard()UseHttpTrackerDashboard() 即可。

仪表盘默认的访问地址是:~/httptracker,你可以在配置项中进行修改路径后缀为其他的名字,同时仪表盘的访问默认开启了 BasicAuthentication 认证,默认的账号密码为:httptracker/httptracker,如果你不想开启认证也可以手动关闭。

🤝 Contributing

因个人能力以及时间精力有限,欢迎有兴趣的朋友们一起参与本项目的开发工作。

📑 TODO

  • HTTP请求跟踪器中间件 SDK
  • 数据存储 SDK,Elasticsearch 支持
  • 数据存储 SDK,MongoDb 支持
  • 数据存储 SDK,SqlServer 支持
  • 数据存储 SDK,MySql 支持
  • 数据存储 SDK,SQLite 支持
  • 数据存储 SDK,PostgreSQL 支持
  • 数据存储 SDK,Oracle 支持
  • 仪表盘 SDK
  • 仪表盘集成 BasicAuthentication 认证
  • 仪表盘 API,自动发现
  • 基于 Blazor 的仪表盘开发
  • 数据存储消息队列 SDK,RabbitMQ 支持
  • 数据存储消息队列 SDK,Kafka 支持
  • ...

⚡ Sample

HttpTracker.Demo

☀️ License

This project is licensed under MIT.

httptracker's People

Contributors

meowv avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.