DevInspector.AuditSDK
4.2.0
dotnet add package DevInspector.AuditSDK --version 4.2.0
NuGet\Install-Package DevInspector.AuditSDK -Version 4.2.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="DevInspector.AuditSDK" Version="4.2.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="DevInspector.AuditSDK" Version="4.2.0" />
<PackageReference Include="DevInspector.AuditSDK" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add DevInspector.AuditSDK --version 4.2.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: DevInspector.AuditSDK, 4.2.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package DevInspector.AuditSDK@4.2.0
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=DevInspector.AuditSDK&version=4.2.0
#tool nuget:?package=DevInspector.AuditSDK&version=4.2.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
DevInspector.AuditSDK
SDK oficial do DevInspector para monitoramento, auditoria de erros, métricas de requisições e APM em aplicações C# e .NET.
Instalação
Você pode instalar o pacote via NuGet Package Manager ou CLI do .NET:
dotnet add package DevInspector.AuditSDK --version 4.2.0
Inicialização
Inicialize o SDK informando a API Key do seu projeto:
using DevInspector;
var audit = AuditCore.GetInstance();
audit.Init(
apiKey: "SUA_API_KEY",
environment: "production",
release: "3.0.0"
);
Também é possível configurar o endpoint e o limite para identificação de operações lentas:
audit.Init(
apiKey: "SUA_API_KEY",
endpoint: "https://api.devinspector.com.br/api/ingest/track",
environment: "production",
release: "3.0.0",
slowThresholdMs: 300
);
Captura de erros
try
{
throw new Exception("Erro de teste");
}
catch (Exception ex)
{
audit.CaptureException(ex);
}
Mensagens
audit.CaptureMessage("Aplicação iniciada");
Monitoramento de requisições
audit.CaptureRequest(
method: "GET",
url: "/api/users",
statusCode: 200,
durationMs: 125
);
APM e operações lentas
Para operações síncronas:
var result = audit.TraceOperation(
"UserRepository.GetUsers",
() =>
{
return repository.GetUsers();
}
);
Para operações assíncronas:
var result = await audit.TraceOperationAsync(
"UserRepository.GetUsers",
async () =>
{
return await repository.GetUsersAsync();
}
);
O limite padrão para operações lentas é de 300ms.
Você pode alterar esse limite durante a inicialização:
audit.Init(
apiKey: "SUA_API_KEY",
environment: "production",
release: "3.0.0",
slowThresholdMs: 500
);
Também é possível informar um limite específico para uma operação:
var result = audit.TraceOperation(
"Database.Query",
500,
() =>
{
return repository.GetUsers();
}
);
Rastreamento distribuído
O SDK 4.2.0 suporta:
requestId
traceId
spanId
Esses identificadores permitem relacionar erros, requisições e operações dentro do mesmo fluxo.
Em integrações HTTP, o contexto pode ser iniciado utilizando:
AuditCore.BeginRequest(
requestId,
traceId,
spanId,
url
);
Ao finalizar a requisição:
AuditCore.ClearRequest();
O contexto é armazenado utilizando AsyncLocal, permitindo seu isolamento durante operações assíncronas.
APM de banco de dados
Operações lentas podem ser registradas como eventos específicos de db_query:
audit.CaptureDbQuery(
operation: "find",
collection: "users",
durationMs: 450
);
Isso permite que o DevInspector apresente as consultas de banco separadamente das mensagens e erros.
Ambiente e release
O SDK permite identificar o ambiente e a versão da aplicação:
audit.Init(
apiKey: "SUA_API_KEY",
environment: "production",
release: "1.4.2"
);
Exemplos de ambientes:
development
staging
production
Captura automática de exceções
O SDK registra exceções não tratadas por meio do mecanismo global de exceções do .NET após a inicialização.
audit.Init(
apiKey: "SUA_API_KEY",
environment: "production"
);
Compatibilidade
.NET 8+
C#
ASP.NET Core
Aplicações console
Aplicações worker
APIs REST
Aplicações web
Segurança
A API Key deve ser mantida em variáveis de ambiente ou em um mecanismo seguro de configuração.
Evite colocar a API Key diretamente no código-fonte.
Exemplo:
var apiKey = Environment.GetEnvironmentVariable("DEVINSPECTOR_API_KEY");
audit.Init(
apiKey: apiKey,
environment: "production",
release: "3.0.0"
);
DevInspector
O DevInspector permite monitorar:
Erros
Exceções
Requisições
Performance
Operações lentas
Consultas de banco de dados
Tracing
Ambiente
Release
Acesse:
https://www.devinspector.com.br/�
Licença
MIT
**Eu recomendo esse README para o 3.0.0**, porque agora ele documenta de fato o que implementamos no `AuditCore.cs`, em vez de deixar o usuário do NuGet sem saber como utilizar APM, tracing e `db_query`.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net8.0
- System.Text.Json (>= 8.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.