标签: sentry

在Sentry中捕获用户信息

我最近刚刚开始在 Laravel 5.1 应用程序上使用 Sentry。

我在那里看到文档和入门资料,以及捕获用户信息的参考。

他们给出的传递这个的例子看起来像这样:

Raven.setUserContext({
    email: 'foo@example.com'
});
Run Code Online (Sandbox Code Playgroud)

按照Laravel 的设置说明进行操作后,我没有看到任何有关此操作的参考信息,也没有看到文档中有关如何在配置文件或 Laravel 的任何内容中进行设置的任何参考信息。

关于如何设置它来发送用户信息有什么想法吗?用户在使用我的应用程序时将始终登录。

php sentry laravel laravel-5.1

4
推荐指数
1
解决办法
6166
查看次数

Sentry React-Native 与 CodePush 不使用源映射

我似乎无法弄清楚这一点。有人可以帮我解决这个问题吗?我正在使用 CodePush 上传我的应用程序,并且我希望 Sentry 处理我的错误,因为应用程序中心诊断不是很好。

我的应用程序的根组件中有这个......

if (process.env.NODE_ENV === 'production') {
  Sentry.config('****',{
    deactivateStacktraceMerging: false
  }).install();
  codePush.getUpdateMetadata().then((update) => {
    if (update) {
      Sentry.setVersion(update.appVersion + '-codepush:' + update.label);
    }
  });
}
Run Code Online (Sandbox Code Playgroud)

我有一个部署包脚本,它将部署到 codepush 并运行在其文档中找到的哨兵命令

appcenter codepush release-react -a account/project --output-dir ./build && export SENTRY_PROPERTIES=./ios/sentry.properties && sentry-cli react-native appcenter account/project ios ./build/codePush

每当我捕获到一个错误或捕获到一个错误时,我都缺乏有关哪个文件引发错误的实际信息,并且我会There was 1 error encountered while processing this event在顶部看到Source code was not found for app:///main.jsbundle当我展开它时的信息。

我觉得这一定是因为哨兵没有正确连接到 codepush 来获取我的源映射?

sentry react-native code-push

4
推荐指数
1
解决办法
1891
查看次数

在 ASP.NET Core 启动期间使用 Serilog 和 Sentry

我正在尝试将应用程序启动期间抛出的错误记录到哨兵。我正在使用 ASP.NET Core 2.1.2、Serilog 和 Sentry。如果我只使用哨兵,它似乎工作正常。

WebHost.CreateDefaultBuilder(args)
    .UseSentry("dsn")
    .UseStartup<Startup>()
    .Build()
    .Run();
Run Code Online (Sandbox Code Playgroud)

但是,如果我添加 Serilog,应用程序在启动期间不会发送任何事件,但如果控制器操作抛出异常,它会继续工作。

WebHost.CreateDefaultBuilder(args)
    .UseSerilog(
        (hostingContext, loggerConfiguration) =>
            loggerConfiguration
                .Enrich.FromLogContext()
                .MinimumLevel.Debug()
                .WriteTo.Console()
                .WriteTo.Sentry(s => {
                    s.MinimumBreadcrumbLevel = LogEventLevel.Debug;
                    s.MinimumEventLevel = LogEventLevel.Error;
                }))
    .UseSentry("dsn")
    .UseStartup<Startup>()
    .Build()
    .Run();
Run Code Online (Sandbox Code Playgroud)

我正在尝试从Startup 类中的ConfigureServices和方法进行日志记录:Configure

public class Startup
{
    public Startup(IConfiguration configuration, ILogger<Startup> logger)
    {
        Configuration = configuration;
        Logger = logger;
    }

    public IConfiguration Configuration { get; }
    public ILogger<Startup> Logger { get; }

    public void ConfigureServices(IServiceCollection services)
    {
        Logger.LogError(new Exception("something went wrong while …
Run Code Online (Sandbox Code Playgroud)

c# sentry serilog asp.net-core

4
推荐指数
1
解决办法
3822
查看次数

防止 Sentry.io 记录服务器错误代码

我有一个使用 Sentry.io 进行日志记录的 Angular 应用程序。我创建了一个自定义错误处理程序类,在其中初始化 Sentry,并且希望避免日志服务器错误(404 未找到或 500 服务器错误)。

我读到,如果 Angular 中的网络调用失败,异常会冒泡,并且不会在 ErrorHandler 中捕获(因此它不会触发handleError方法)。

然而,即使我使用该beforeSend()方法,按照建议面对这种非常特殊的情况,控制台日志也会被写入(例如SENTRY SKIPPING EVENT),但所有服务器错误都会记录在Sentry中。

export class MyhErrorHandler implements ErrorHandler {

    if (environment.production) {

      Sentry.init({
        dsn: 'https://12314567@sentry.io/123456789',
        environment: this.environmentData.env,
        beforeSend(event) {
          try {
            if (this.isServerError(JSON.stringify(event))) {
              console.log('------   SENTRY SKIPPING EVENT: ', {event});
              return null;
            }
          } catch (e) {
            console.log('------   SENTRY ERROR: ', {e});
          }
          return event;
        }
      });
    }

   handleError(err: any): void {
     if (!this.isServerError(err)) {    
       const errorText = MyhErrorHandler.getError(err);
       Sentry.captureException(errorText);
     }
   } …
Run Code Online (Sandbox Code Playgroud)

logging sentry angular

4
推荐指数
1
解决办法
2959
查看次数

如何解决nginx入口中的路径冲突?

我在我的 EKS 集群上运行哨兵,根据官方文档,它只能在 rootPath“/”上公开,我还在默认的 Web 上下文“/auth”上公开 keycloak 所以我部署了 nginx 入口控制器,入口资源来匹配这些路径,但我遇到的问题是哨兵路径(“/”)总是重定向到“/auth”,这是keycloak的默认路径,这会导致冲突。就我而言,我不允许更改 keycloak 的网络上下文,因此我尝试为具有相同类的哨兵部署另一个 nginx 入口控制器,但我不知道该怎么做,因为所有示例都使用具有不同类的入口控制器。所以我想知道是否可能如何部署与第一个几乎相同的 seconf nginx 入口,或者是否有其他解决方案请帮助我了解。

这是我使用的 nginx 入口控制器:

apiVersion: v1
kind: Namespace
metadata:
  name: ingress-nginx
  labels:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/instance: ingress-nginx

---
# Source: ingress-nginx/templates/controller-serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    helm.sh/chart: ingress-nginx-2.0.1
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/version: 0.31.1
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: controller
  name: ingress-nginx
  namespace: ingress-nginx
---
# Source: ingress-nginx/templates/controller-configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  labels:
    helm.sh/chart: ingress-nginx-2.0.1
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/instance: ingress-nginx
    app.kubernetes.io/version: 0.31.1
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/component: controller …
Run Code Online (Sandbox Code Playgroud)

sentry nginx-reverse-proxy kubernetes-ingress amazon-eks nginx-ingress

4
推荐指数
1
解决办法
5385
查看次数

Sentry 删除问题(日志)

我在本地运行自托管docker-compose up -dSentry 21.6.1 ,由于收集了大量问题,Django 数据库很快就满了。8 天内总共出现 3,218,732 个错误。

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       504G  130G  349G  28% /
Run Code Online (Sandbox Code Playgroud)

如何从数据库中删除旧问题(假设超过 30 天)或设置新问题以在磁盘已满后覆盖旧问题?或者对于这个问题有更好的解决方案吗?

database django sentry docker-compose

4
推荐指数
1
解决办法
3607
查看次数

Sentry:交易配额已耗尽80%

我从哨兵那里收到这封邮件:

\n

Sentry:交易配额已耗尽80%

\n
\n

接近交易限额

\n

您的组织 FooBar 在当前使用期间消耗了 80% 的交易容量。请务必记住,如果您达到配额并消耗您的按需支出,任何超额交易都将被丢弃,直到您转入 2021 年 12 月 18 日之后的下一个时期。

\n
\n

我只是想使用使用哨兵来监视未捕获的异常。

\n

但似乎哨兵监视了我所有的交易。那不是我想要的。

\n

如何禁用对交易的监控,以便仅监控未捕获的异常?

\n

sentry

4
推荐指数
1
解决办法
3215
查看次数

如何更改 Sentry 中使用的 JavaScript 错误对象的名称或消息?

我有一个在代码中捕获的 JavaScript 错误对象。它有我想在后端记录的名称、消息、堆栈等。我正在为此使用哨兵。但在记录之前我想更改错误的名称或消息。

最好的方法是什么?我尝试创建一个新错误并将原始错误添加为cause,但这不适用于哨兵。它只是将传递的错误记录为新错误的原因。

new Error('Additional error message', { cause: originalError });
Run Code Online (Sandbox Code Playgroud)

我需要错误的其余属性保持不变,只需要更改名称或消息。

javascript sentry

4
推荐指数
1
解决办法
4096
查看次数

Sentry 订阅的主题不可用:ingest-replay-recordings:代理:未知主题或分区

我的 kubernetes 集群上有哨兵。上次升级到图表 Sentry-18.0.0、应用程序版本 23.3.1 后,一个 pod:sentry-ingest-replay-recordings-xxx-yyy 出现崩溃循环 (CrashLoopBackOff)。

\n

下面的日志,知道如何修复它吗?

\n
06:16:55 [WARNING] sentry.utils.geo: settings.GEOIP_PATH_MMDB not configured.                                                                                                                                               \xe2\x94\x82\n\xe2\x94\x82 06:16:58 [INFO] sentry.plugins.github: apps-not-configured                                                                                                                                                                  \xe2\x94\x82\n\xe2\x94\x82 Traceback (most recent call last):                                                                                                                                                                                          \xe2\x94\x82\n\xe2\x94\x82   File "/usr/local/lib/python3.8/site-packages/arroyo/processing/processor.py", line 181, in run                                                                                                                            \xe2\x94\x82\n\xe2\x94\x82     self._run_once()                                                                                                                                                                                                        \xe2\x94\x82\n\xe2\x94\x82   File "/usr/local/lib/python3.8/site-packages/arroyo/processing/processor.py", line 212, in _run_once                                                                                                                      \xe2\x94\x82\n\xe2\x94\x82     self.__message = self.__consumer.poll(timeout=1.0)                                                                                                                                                                      \xe2\x94\x82\n\xe2\x94\x82   File "/usr/local/lib/python3.8/site-packages/arroyo/backends/kafka/consumer.py", line 409, in poll                                                                                                                        \xe2\x94\x82\n\xe2\x94\x82     raise ConsumerError(str(error))                                                                                                                                                                                         \xe2\x94\x82\n\xe2\x94\x82 arroyo.errors.ConsumerError: KafkaError{code=UNKNOWN_TOPIC_OR_PART,val=3,str="Subscribed topic not available: ingest-replay-recordings: Broker: Unknown topic or partition"}                                                \xe2\x94\x82\n\xe2\x94\x82 06:16:58 [ERROR] arroyo.processing.processor: Caught exception, shutting down...                                                                                                                                            \xe2\x94\x82\n\xe2\x94\x82 …
Run Code Online (Sandbox Code Playgroud)

sentry on-premises-instances

4
推荐指数
1
解决办法
1207
查看次数

C++:使用std :: istream或sentry环绕的奇怪行为

这个小的自定义getline函数是作为一个关于处理不同行结尾的问题的答案.

该功能非常有效,直到2天前编辑,使其不会跳过每行的前导空格.但是,在编辑之后,程序现在进入无限循环.对代码进行的唯一更改是以下更改的行:

std::istream::sentry se(is);  // When this line is enabled, the program executes
                              // correctly (no infinite loop) but it does skip
                              // leading white spaces
Run Code Online (Sandbox Code Playgroud)

对此:

std::istream::sentry se(is, true); // With this line enabled, the program goes 
                                   // into infinite loop inside the while loop  
                                   // of the main function.
Run Code Online (Sandbox Code Playgroud)

如果我们指定不跳过空格,有人可以帮我解释为什么程序无限循环?

这是完整的程序......

std::istream& safeGetline(std::istream& is, std::string& t)
{
    t.clear();

    // The characters in the stream are read one-by-one using a std::streambuf.
    // That is faster than reading …
Run Code Online (Sandbox Code Playgroud)

c++ istream sentry

3
推荐指数
1
解决办法
1644
查看次数