Git Product home page Git Product logo

fzcm / httptracker Goto Github PK

View Code? Open in Web Editor NEW

This project forked from meowv/httptracker

1.0 0.0 0.0 366 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%

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.

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.