我最近刚刚开始在 Laravel 5.1 应用程序上使用 Sentry。
我在那里看到文档和入门资料,以及捕获用户信息的参考。
他们给出的传递这个的例子看起来像这样:
Raven.setUserContext({
email: 'foo@example.com'
});
Run Code Online (Sandbox Code Playgroud)
按照Laravel 的设置说明进行操作后,我没有看到任何有关此操作的参考信息,也没有看到文档中有关如何在配置文件或 Laravel 的任何内容中进行设置的任何参考信息。
关于如何设置它来发送用户信息有什么想法吗?用户在使用我的应用程序时将始终登录。
我似乎无法弄清楚这一点。有人可以帮我解决这个问题吗?我正在使用 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 来获取我的源映射?
我正在尝试将应用程序启动期间抛出的错误记录到哨兵。我正在使用 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) 我有一个使用 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) 我在我的 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
我在本地运行自托管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 天)或设置新问题以在磁盘已满后覆盖旧问题?或者对于这个问题有更好的解决方案吗?
我从哨兵那里收到这封邮件:
\n\n\n接近交易限额
\n您的组织 FooBar 在当前使用期间消耗了 80% 的交易容量。请务必记住,如果您达到配额并消耗您的按需支出,任何超额交易都将被丢弃,直到您转入 2021 年 12 月 18 日之后的下一个时期。
\n
我只是想使用使用哨兵来监视未捕获的异常。
\n但似乎哨兵监视了我所有的交易。那不是我想要的。
\n如何禁用对交易的监控,以便仅监控未捕获的异常?
\n我有一个在代码中捕获的 JavaScript 错误对象。它有我想在后端记录的名称、消息、堆栈等。我正在为此使用哨兵。但在记录之前我想更改错误的名称或消息。
最好的方法是什么?我尝试创建一个新错误并将原始错误添加为cause,但这不适用于哨兵。它只是将传递的错误记录为新错误的原因。
new Error('Additional error message', { cause: originalError });
Run Code Online (Sandbox Code Playgroud)
我需要错误的其余属性保持不变,只需要更改名称或消息。
我的 kubernetes 集群上有哨兵。上次升级到图表 Sentry-18.0.0、应用程序版本 23.3.1 后,一个 pod:sentry-ingest-replay-recordings-xxx-yyy 出现崩溃循环 (CrashLoopBackOff)。
\n下面的日志,知道如何修复它吗?
\n06: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) 这个小的自定义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) sentry ×10
amazon-eks ×1
angular ×1
asp.net-core ×1
c# ×1
c++ ×1
code-push ×1
database ×1
django ×1
istream ×1
javascript ×1
laravel ×1
laravel-5.1 ×1
logging ×1
php ×1
react-native ×1
serilog ×1