Sentry 一个错误跟踪和性能监控平台

《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的Sentry 是一个开发人员优先的错误跟踪和性能监控平台。

Sentry 一个错误跟踪和性能监控平台

Sentry 是一个开发人员优先的错误跟踪和性能监控平台,可帮助开发人员了解真正重要的问题、更快地解决问题并不断了解他们的应用程序。

Sentry特性

  • 源代码、错误过滤器、堆栈局部变量 — Sentry 通过堆栈跟踪增强了应用程序性能监控。
  • 在停机之前快速识别性能问题。查看整个端到端分布式跟踪以查看准确的、性能不佳的 API 调用并显示任何相关错误。
  • 面包屑通过向您显示导致错误的事件轨迹,使应用程序开发变得更容易一些。
  • 无论您使用的是JavaScript、PHP还是介于两者之间的任何东西,Release 都可以让您了解哪些错误已得到解决,哪些错误是首次引入的。
  • 软件开发周期可能充满歧义。问题所有者将控制权交还给开发人员,以修复他们代码中的问题。
  • 实时应用程序监控意味着实时的数据。使用 Sentry 的查询构建器 Discover 查询整个组织的原始事件数据。
  • 仪表板为我们的应用程序监控添加了视觉元素。
Sentry 一个错误跟踪和性能监控平台

Sentry使用

Sentry Java SDK 可以与 Kotlin、Scala 和其他 JVM 语言一起使用。代码示例通常以 Java 和 Kotlin 的形式提供。

Sentry 通过在应用程序运行时中使用 SDK 来捕获数据。


    io.sentry
    sentry
    6.2.1

如果您使用多个 Sentry 依赖项,则可以添加物料清单以避免指定每个依赖项的版本。

应在应用程序的生命周期中尽早进行配置。

import io.sentry.Sentry;

Sentry.init(options -> {
  options.setDsn("https://examplePublicKey@o0.ingest.sentry.io/0");
});

此代码段包含一个故意错误,因此您可以在设置后立即测试一切是否正常:

import io.sentry.Sentry;

try {
  throw new Exception("This is a test.");
} catch (Exception e) {
  Sentry.captureException(e);
}

在此页面上,我们让您使用 Sentry 的 SDK 启动并运行,以便它会自动报告您的应用程序中的错误和异常。

Sentry 通过在应用程序运行时中使用 SDK 来捕获数据。

# Using yarn
yarn add @sentry/node @sentry/tracing
# Using npm
npm install --save @sentry/node @sentry/tracing

完成此操作后,Sentry 的 Node SDK 将捕获所有事务和未处理的异常。

import * as Sentry from "@sentry/node";
import "@sentry/tracing";

Sentry.init({
  dsn: "https://examplePublicKey@o0.ingest.sentry.io/0",

  tracesSampleRate: 1.0,
});

此代码段包含一个故意错误,因此您可以在设置后立即测试一切是否正常:

const transaction = Sentry.startTransaction({
  op: "test",
  name: "My First Test Transaction",
});

setTimeout(() => {
  try {
    foo();
  } catch (e) {
    Sentry.captureException(e);
  } finally {
    transaction.finish();
  }
}, 99);

要安装 Android SDK,请将其添加到您的build.gradle文件中:

// Make sure mavenCentral is there.
repositories {
    mavenCentral()
}

// Enable Java 1.8 source compatibility if you haven't yet.
android {
    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_1_8
        targetCompatibility = JavaVersion.VERSION_1_8
    }
}

// Add Sentry's SDK as a dependency.
dependencies {
    implementation 'io.sentry:sentry-android:6.2.1'
}

配置通过AndroidManifest.xml:


  

此代码段包含一个故意错误,因此您可以在设置后立即测试一切是否正常:

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import java.lang.Exception;
import io.sentry.Sentry;

public class MyActivity extends AppCompatActivity {
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    try {
      throw new Exception("This is a test.");
    } catch (Exception e) {
      Sentry.captureException(e);
    }
  }
}

验证

身份验证令牌

身份验证令牌使用 auth 标头传递,并用于通过 API 以用户或组织帐户身份进行身份验证。在我们的文档中,我们有几个出现在大括号或 V 形之间的占位符,例如{API_KEY}or ,您需要将其替换为您的身份验证令牌之一才能有效地使用 API 调用。

curl -H 'Authorization: Bearer {TOKEN}' https://sentry.io/api/0/projects/

如果您的身份验证令牌是1a2b3c,那么命令应该是:

curl -H 'Authorization: Bearer 1a2b3c' https://sentry.io/api/0/projects/

DSN 身份验证

某些 API 端点可能允许基于 DSN 的身份验证。这通常非常有限,并且端点将描述其是否受支持。这与承载令牌身份验证类似,但使用您的 DSN(客户端密钥)。

curl -H 'Authorization: DSN {DSN}' https://sentry.io/api/0/projects/

分页结果

API 中的分页是通过 Link 标头标准处理的:

curl -i https://sentry.io/api/0/projects/1/groups/

支持时,将始终为上一页和下一页返回游标,即使这些页面上没有结果也是如此。这允许您对 API 进行查询以获取尚未发现的结果。一个例子是当你实现轮询行为并且你想看看是否有任何新数据时。我们返回一个results="[true|false]"指标来确定您是否真的需要分页。

分页示例

以下是使用此 API 端点的分页示例:

https://docs.sentry.io/api/events/list-an-issues-events/

此示例中的 HTTP 请求针对该问题返回 100 个事件,并在响应中包含以下链接标头:

; rel="previous"; results="false"; cursor="0:0:1", ; rel="next"; results="true"; cursor="0:100:0"

链接响应中的一个 URL 具有rel=next,它指示下一个结果页面。它也有results=true,这意味着有更多的结果。

基于此,下一个请求是GET

此请求将再次返回该问题的下 100 个事件,并带有以下链接标头:

; rel="previous"; results="true"; cursor="0:0:1", ; rel="next"; results="true"; cursor="0:200:0"

重复该过程,直到 URL 具有指示最后一页rel=next的标志。results=false

cursor 的三个值是:游标标识符(整数,通常为 0)、行偏移量和 is_prev(1 或 0)。

图示

Sentry 一个错误跟踪和性能监控平台

Sentry 一个错误跟踪和性能监控平台

Sentry 一个错误跟踪和性能监控平台

—END—

开源协议:View license

开源地址:https://github.com/getsentry/sentry

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章