Sentry部署:( 后端 )Python方式部署sentry

python方式部署sentry

1.sentry介绍

Sentry是一个开源的实时错误收集报告工具,支持web前后端、移动应用以及游戏等,支持Python、JavaScript、Java、Go、Nodejs、Django、PHP等主流编程语言和框架平台,还提供了对GitHub、Gitlab等常见开发工具的集成及Mail邮件通知(收集到的错误告警),除此之外我们还可以自主开发插件以满足项目需求。

2.部署方式

  • 部署方式分俩种:docker方式和python方式。
  • docker方式部署操作比较简单,也是【Sentry官方】比较推崇的方式,直接按【Sentry On-Premise】提供的方式按部就班部署就好了。或者可直接参考【Docker部署Sentry监控Django应用并使用email+钉钉通知】即可。
  • 插入一句题外话,最初我也是使用docker方式部署在机器上的也成功部署和配置好了,当时考虑到使用docker部署的不可控风险等系列问题,加之项目工作需要转而改用python虚拟环境部署。
  • python方式部署相对比较麻烦但还是比较稳妥,可参考:【sentry官方提供的python安装方式】。下面我就以我后来使用的python方式部署sentry的过程做个详细介绍供他人借鉴。

3.python方式部署sentry具体过程

1.本文使用python虚拟环境的说明:如果我们要同时开发多个应用程序,每个应用可能需要各自拥有一套“独立”的python运行环境,我们可以使用virtualenv来解决这个问题,它可以为一个应用创建一套“隔离”的python运行环境以免相互影响干扰。

2.本文介绍具体过程的前提:

  • 涉及的环境工具:

  • Linux服务器(虚拟机安装一个即可。例如本人使用服务器:10.80.80.238)

  • python虚拟环境

  • Postgresql或者MySQL(本文使用MySQL)

  • Redis

  • 邮箱账号密码(用于配置邮件通知,如果需要配置邮件通知的话,就需要,否则不需要。本文是会进行配置的。)

  • 钉钉群机器人的webhook(用于配置钉钉通知)。具体如何获取配置钉钉群机器人的webhook:参考【获取自定义机器人webhook】

  • 说明:需保持本地网络通畅连接Internet。

3.具体安装配置步骤:

  • 1)安装常用开发工具:

    $yum -y groupinstall "Development Tools"    
    
  • 2)安装redis,可参考:【Redis的安装和部署】【在CentOS 7下安装Redis】。或者参考以下:

    $yum -y install tcl    
    $wget http://download.redis.io/releases/redis-3.2.5.tar.gz    
    $tar -zxvf redis-3.2.5.tar.gz  
    $cd redis-3.2.5/src/  
    $make test  
    $ls  /usr/local/bin/	##结果:redis-benchmark  redis-check-aof    redis-check-rdb  redis-cli  redis-sentinel  redis-server    
    $vim /etc/profile  
    	添加内容:  
    		##HISTSIZE
    		HISTSIZE=100000 #修改默认保存1000条history历史命令为100000条。
    		##redis
    		export PATH=$PATH:/usr/local/bin  
    $source /etc/profile
    $redis-server & #后台运行redis服务
    
  • 3)安装一套python虚拟环境:

    $pip install -U virtualenv #安装一套python虚拟环境
    $pip install virtualenvwrapper	#方便后续用来建立一个虚拟环境安装的存储目录
    $mkdir -p /www #/www:虚拟环境存储目录
    $vim /etc/profile
    	添加内容:
    		##配置python虚拟环境存储目录等
    		#if [ `id -u` != '0' ]; then
    		#若id -u为0表示是root用户
    		        export VIRTUALENV_USE_DISTRIBUTE=1            # <-- Always use pip/distribute
    		        export WORKON_HOME=/www               # <-- Where all virtualenvs will be stored
    		        source /usr/bin/virtualenvwrapper.sh
    		        export PIP_VIRTUALENV_BASE=$WORKON_HOME
    		        export PIP_RESPECT_VIRTUALENV=true
    		#fi
    $source /etc/profile
    $#vim /usr/bin/virtualenvwrapper.sh查看发现:(1)mkvirtualenv envDirName 创建虚拟环境(虚拟环境目录为envDirName)(1)workon 列举虚拟环境(2)workon envDirName 激活envDirName虚拟环境  
    $#/usr/bin/virtualenvwrapper.sh具体内容可参考:https://bitbucket.org/dhellmann/virtualenvwrapper/src/67108f0e2abdda349cb22997612b3e22a9178ab3/virtualenvwrapper.sh?at=master&fileviewer=file-view-default
    $#事实上virtualenvwrapper是对virtualenv的一次封装
    $virtualenv /www/sentry/  #/www/sentry:python虚拟环境工作空间(用于安装sentry),即创建sentry虚拟环境
    $source /www/sentry/bin/activate #激活进入sentry虚拟环境  
    $deactivate	#退出当前运行的虚拟环境。
    $workon #列举所有虚拟环境
    $workon sentry	#激活进入sentry虚拟环境,相当于source /www/sentry/bin/activate
    $deactivate	#退出当前运行的虚拟环境。
    
  • 4)安装sentry:

    $workon sentry #安装sentry前,得进入sentry虚拟环境
    $yum -y install python-devel
    $pip install -U sentry	#sentry源码位于:/www/sentry/lib/python2.7/site-packages/sentry/
    $#sentry官方源码位于:https://github.com/getsentry/sentry/tree/master/src/sentry
    $sentry help	#查看sentry可用命令的使用帮助
    $mkdir -p /www/sentry/etc/sentry/	#sentry初始化配置文件的存放目录
    $#/www/sentry/etc/sentry下:#里面有【config.yml、sentry.conf.py】俩个配置文件,依据官方文档看,config.yml以后会慢慢替代sentry.conf.py的,看来咧是以config.yml为主的,只是目前sentry.conf.py的有些配置还不能被config.yml所替代。
    
  • 5)安装MySQL,请自行安装。或者可参考以下:

    https://www.cnblogs.com/wanghetao/p/3806888.html
    https://www.cnblogs.com/Richardzhu/p/3220883.html
    https://www.cnblogs.com/sos-blue/p/6852945.html
    
  • 6)编辑【config.yml】、【sentry.conf.py】俩配置文件以配置sentry:

    $yum -y install mysql-devel	#【django.db.backends.mysql】需要的依赖
    $pip install mysql-python	#mysql-python :mysql的C语言的驱动
    $vim /www/sentry/etc/sentry/sentry.conf.py
    	编辑:
    		# ~/.sentry/sentry.conf.py
    	    # for more information on DATABASES, see the Django configuration at:
    	    # https://docs.djangoproject.com/en/stable/ref/databases/
    	    # This documentation refers to a newer Django version than what
    	    # Sentry uses, so there may be some discrepancies.
    	    #数据库的配置
    	    #DATABASES = {
    	    #    'default': {
    	    #        'ENGINE': 'sentry.db.postgres',  #使用postgres数据库  #如果用MySQL,则:'ENGINE': 'django.db.backends.mysql',
    	    #     #坑:#mysql的坑:【sentry默认使用 PostgreSQL。我用的是 mysql。运行 sentry upgrade的时候,发现运行到db migration的时候抛了异常,查阅发现我这里MySQL存储引擎使用的是MyISAM,不支持transaction事务操作导致的。这里需要注意下,我将存储引擎改为InnoDB后,执行migration的时候错误消失。】
    	     #       'NAME': 'sentry', #数据库名
    	     #       'USER': 'postgres',#用户名
    	     #       'PASSWORD': 'xxx',#密码
    	     #       'HOST': 'xxx',#主机
    	     #       'PORT': 'xxx',#连接端口
    	     #   }
    	     #}
    		 DATABASES = {
    		    'default': {
    		 #        'ENGINE': 'sentry.db.postgres',
    		 #        'NAME': 'xxx',
    		 #        'USER': 'xxx',
    		 #        'PASSWORD': 'xxx',
    		 #        'HOST': 'xxx',
    		 #        'PORT': 'xxx',
    		 #        'AUTOCOMMIT': True,
    		 #        'ATOMIC_REQUESTS': False,
    		
    				#更换为MySQL
    		        #xxx数据库
    		        #'NAME': 'xxx',
    		        #xxx数据库
    		    	'ENGINE': 'django.db.backends.mysql',
    		        'NAME': 'xxx',
    		        'USER': 'xxx',
    		        'PASSWORD': 'xxx',
    		        'HOST': '127.0.0.1',
    		        'PORT': '3306',
    		        'AUTOCOMMIT': True,
    		        'ATOMIC_REQUESTS': False,
    				#CONN_MAX_AGE设置成小于【MySQL配置变量wait_timeout】的数值。这里设置成3600秒。
    				#最大连接时长,避免sentry连接MySQL超时使得连接断开出现(ERROR : (2006, 'MySQL server has gone away') )
    		        'CONN_MAX_AGE': 3600
    		        #'CONN_MAX_AGE': 3600
    		    }
    		 }
    	     #redis配置
    	     redis.clusters:
    	       default:
    	         hosts:
    	           0:
    	             host: 127.0.0.1
    	             port: 6379
    	             # password: "my-secret-password"
    
    
    $vim /www/sentry/etc/config.yml
    	编辑:
    		mail.backend: 'dummy' #dummy:表示禁用邮件。#如果使用SSL邮件,则mail.backend: 'django_smtp_ssl.SSLEmailBackend'
    		#mail.backend: 'dummy' #dummy:表示禁用邮件。
    		#如果使用SSL邮件,则mail.backend: 'django_smtp_ssl.SSLEmailBackend'
    		#前提需要安装django-smtp-ssl插件。即在sentry虚拟环境中的操作步骤:pip install django-smtp-ssl
    		mail.host: 'smtp.xxx.com' # 企业邮箱SMTP服务器
    		mail.port: 465
    		mail.username: 'xxx@xxx.com'    #发件人邮箱地址
    		mail.password: 'xxx'       #邮箱授权码
    		mail.use-tls: false                     #需设为 false 
    		mail.from: 'xxx@xxx.com'        #mail.from 必须与 mail.username 一致,可能受服务商影响
    
  • 7)可选步骤(创建sentry数据库):

    $createdb -E utf-8 sentry	
    $##If you kept the database ``NAME`` as ``sentry``:也就是说要创建的数据库库名是sentry 。    
    $#如果在sentry俩配置文件中已经配置好了数据库连接的,就不用再创建数据库了。
    
    $#Once done, you can create the initial schema using the upgrade command:创建初始化数据库模式
    $SENTRY_CONF=/etc/sentry sentry upgrade
    
  • 8)创建超级管理员:

    $#/www/sentry/etc/sentry:config.yml、sentry.conf.py所在目录
    $SENTRY_CONF=/www/sentry/etc/sentry sentry createuser #新创建一个sentry应用用户。主要用来创建超级管理员。当中提示输入是否创建超级管理员、超级管理员邮箱(其实当作超级管理员用户名)、超级管理员密码
    $pip install redis==2.10.3 #安装redis
    $pip install redis-py-cluster==1.3.4 #安装redis-py-cluster操作redis集群。指定版本以便后续安装【sentry-dingding钉钉通知插件】
    
  • 9)启动服务:

    (sentry) [xxx@xxx ~]$ sentry   run      
    Usage: sentry run [OPTIONS] COMMAND [ARGS]...
    
      Run a service.
    
    Options:
      --help  Show this message and exit.
    
    Commands:
      cron    Run periodic task dispatcher.
      smtp    Run inbound email service.
      web     Run web service.
      worker  Run background worker instance.
    
    $SENTRY_CONF=/etc/sentry sentry run web #启动sentry网页服务 #默认端口:9000
    $SENTRY_CONF=/etc/sentry sentry run worker #启动sentry的处理后台逻辑的worker进程
    $##坑:【页面打开后,提示 worker 没有正常运行。发现没有启动 worker。我们手动启动下 worker,启动时,需要在系统中将 C_FORCE_ROOT 设置为 true。详细点击:https://stackoverflow.com/questions/20346851/running-celery-as-root】
    $SENTRY_CONF=/etc/sentry sentry run cron #启动sentry的cron定时任务
    $#【访问sentry web网页界面】:ip+port,例如我的是http://10.80.80.238:9000/
    
  • 10)可使用【Supervisor】工具来简化管理sentry的所有服务跟进程(配置supervisord服务;这里相当于把sentry当作一个服务来管理)。可参考:

    1.http://supervisord.org/installing.html#installing-to-a-system-with-internet-access
    2.http://supervisord.org/running.html#running
    3.https://www.cnblogs.com/xuezhigu/p/7660203.html
    4.https://stackoverflow.com/questions/18859063/supervisor-socket-error-issue
    5.https://www.jianshu.com/p/c28f3914fa2d
    6.https://www.jianshu.com/p/5c3922fa97c0
    
    配置示例比如:
    	[program:sentry-web]
    	directory=/www/sentry/
    	environment=SENTRY_CONF="/www/sentry/etc/sentry"
    	command=/www/sentry/bin/sentry run web
    	autostart=true
    	autorestart=true
    	redirect_stderr=true
    	stdout_logfile=syslog
    	stderr_logfile=syslog
    	
    	[program:sentry-worker]
    	directory=/www/sentry/
    	environment=SENTRY_CONF="/www/sentry/etc/sentry"
    	command=/www/sentry/bin/sentry run worker
    	autostart=true
    	autorestart=true
    	redirect_stderr=true
    	stdout_logfile=syslog
    	stderr_logfile=syslog
    	
    	[program:sentry-cron]
    	directory=/www/sentry/
    	environment=SENTRY_CONF="/www/sentry/etc/sentry"
    	command=/www/sentry/bin/sentry run cron
    	autostart=true
    	autorestart=true
    	redirect_stderr=true
    	stdout_logfile=syslog
    	stderr_logfile=syslog
    
  • 11)定时清理数据:

    $crontab -e
    	内容(每隔30天定期清理旧数据):
    		0 3 * * * sentry cleanup --days=30	
    
  • 12)配置钉钉通知:

    $pip install sentry-dingding #在python虚拟环境中执行
    $#源码位于:/www/sentry/lib/python2.7/site-packages/sentry_dingding
    $#GitHub源码:https://github.com/anshengme/sentry-dingding
    
    $vim /www/sentry/etc/sentry/sentry.conf.py #对它末尾添加上内容:
    		###新添加的配置:添加刚安装的钉钉通知插件
    		#INSTALLED_APPS += ('sentry_dingding','sentry_plugins','sentry_dingtalk')
    		INSTALLED_APPS += ("sentry_dingding",)
    
    • 重启sentry应用。

    • 前往sentry web界面的项目集成插件处开启钉钉插件并配置上access_token然后就可以通过钉钉发送通知啦。

    • 1.登录:

    • 2.配置钉钉Access_Token:

	进入web页面:	http://10.80.80.238:9000/settings/sentry/internal/plugins/DingDing/

	例如,我的钉钉机器人webhook:https://oapi.dingtalk.com/robot/send?access_token=22bbd4213988cc0babe71a725919a35176b6086745efd4cf5109ff4d108d4f68,当需要配置填写Access_Token时就只需填写22bbd4213988cc0babe71a725919a35176b6086745efd4cf5109ff4d108d4f68而不是整个url(自己踩坑发现的?)
  • 1

钉钉通知效果
 

  • 13)手动配置启动脚本和日志输出。
	$mkdir -p /www/sentry/logs #存放sentry日志
	$mkdir -p /www/sentry/myShellDir	#存放sentry启动脚本
	$vim /www/sentry/myShellDir/startSentry.sh #内容示例如下:
		#!/bin/bash
		#功能:启动python虚拟环境并启动运行sentry.
		if [ ! -d /www/sentry/etc/sentry/ -o ! -d /www/sentry/logs/ ];then
		    echo "!!!【目录:/www/sentry/etc/sentry/或者/www/sentry/logs/没有,请先创建好再来】!!!"
		    exit 10
		fi
		source /etc/profile
		workon sentry
		#初始化配置文件
		#sentry init /www/sentry/etc/sentry/
		#运行web服务,输出日志
		SENTRY_CONF=/www/sentry/etc/sentry/ sentry run web      &>/www/sentry/logs/`date '+%Y-%m-%d_%H-%M-%S'`.web.log    &
		#运行后台异步实例任务,输出日志
		SENTRY_CONF=/www/sentry/etc/sentry/ sentry run worker       &>/www/sentry/logs/`date '+%Y-%m-%d_%H-%M-%S'`.worker.log  &
		#运行定时任务,输出日志
		SENTRY_CONF=/www/sentry/etc/sentry/ sentry run cron         &>/www/sentry/logs/`date '+%Y-%m-%d_%H-%M-%S'`.cron.log    &
		#SENTRY_CONF=/www/sentry/etc/sentry sentry run worker &
		#SENTRY_CONF=/www/sentry/etc/sentry sentry run cron &
		#SENTRY_CONF=/www/sentry/etc/sentry sentry run web &
	$ls /www/sentry/logs/	#会有如下示例日志:
		2019-01-09_14-45-34.cron.log
		2019-01-09_14-45-34.web.log
		2019-01-09_14-45-34.worker.log
  • 13)sentry项目运行过程中涉及进程如下(8个):
	[dev@xxx /www/sentry/logs]$ ps -ef|grep Sentry
	dev       90479      1  0 14:45 pts/2    00:00:04 [Sentry] uWSGI master                                     #启动web界面服务的主进程
	dev       90513  90479  0 14:45 pts/2    00:00:04 [Sentry] uWSGI worker 1                                   #启动web界面服务的子进程
	dev       90514  90479  0 14:45 pts/2    00:00:04 [Sentry] uWSGI worker 2                                   #启动web界面服务的子进程
	dev       90515  90479  0 14:45 pts/2    00:00:04 [Sentry] uWSGI worker 3                                   #启动web界面服务的子进程
	[dev@xxx /www/sentry/logs]$ ps -ef|grep Worker
	dev       90548  90480  0 14:45 pts/2    00:00:03 [celeryd: celery@xxx:Worker-1]               #处理sentry后台逻辑的worker子进程
	dev       90549  90480  0 14:45 pts/2    00:00:06 [celeryd: celery@xxx:Worker-2]               #处理sentry后台逻辑的worker子进程
	[dev@xxx /www/sentry/logs]$ ps -ef|grep MainProcess
	dev       90480      1  0 14:45 pts/2    00:00:05 [celeryd: celery@xxx:MainProcess] -active-   #处理sentry后台逻辑的worker主进程
	[dev@xxx /www/sentry/logs]$ ps -ef|grep cron
	dev       90481      1  0 14:45 pts/2    00:00:08 [celery beat] run cron                                    #sentry的定时任务进程

4.补充:

1.sentry官方:

2.postgresql相关:

3.sentry安装配置相关:

4.redis相关:

5.supervisor相关:

6.MySQL相关:

7.sentry的钉钉插件:

8.Linux防火墙相关:

9.xampp相关:

10.django相关:

11.Linux命令相关:

12.python相关:

13.svn文档:

14.docker相关:

15.钉钉相关:

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Kubernetes是一种容器编排工具,可以帮助我们管理部署容器化应用程序。Sentry是一个开源的错误跟踪平台,可以帮助我们监控应用程序中的错误和异常。 要在Kubernetes上部署Sentry,我们需要先创建一个Kubernetes集群,并安装必要的组件,如kubectl和Helm。然后,我们可以使用Helm chart来部署Sentry。 首先,我们需要添加Sentry Helm chart的存储库。可以使用以下命令: ``` helm repo add sentry https://sentry-kubernetes.github.io/charts ``` 接下来,我们可以使用以下命令安装Sentry Helm chart: ``` helm install sentry sentry/sentry ``` 这将在Kubernetes集群中创建一个Sentry部署,并将其暴露为一个NodePort服务。我们可以使用以下命令获取Sentry服务的URL: ``` minikube service sentry-sentry-web --url ``` 现在,我们可以使用浏览器访问Sentry服务,并开始监控我们的应用程序中的错误和异常。 ### 回答2: Kubernetes是一种用于自动化部署、扩展和管理容器化应用程序的开源平台。而Sentry是一种开源的实时错误跟踪平台,它可以帮助开发人员及时发现和修复应用程序中的问题。这两者的结合,可以让我们更快速地部署Sentry,提高应用程序的可靠性和稳定性。 下面是在Kubernetes上部署Sentry的基本步骤: 1. 创建Kubernetes集群:首先,需要创建一个Kubernetes集群。您可以使用各种托管服务或自己构建集群。系統自帶的語音對話,如果希望自己构建集群,建议使用一些较新的工具,如kubeadm、k3s等。 2. 安装Docker和Kubectl:在Kubernetes集群中运行容器,需要先安装Docker。Kubectl是一种用于管理Kubernetes集群的命令行工具,您也需要安装它。 3. 创建Sentry应用程序:在Kubernetes集群中创建Sentry应用程序。可以手动创建Sentry Kubernetes部署文件,也可以使用现成的部署文件。可以在Kubernetes文档中找到这些内容。 4. 部署Sentry应用程序:使用kubectl命令,部署Sentry应用程序。在这里,您可以使用kubectl create命令,一次性部署所有资源。您也可以逐一部署资源。 5. 访问Sentry应用程序:当Sentry应用程序部署成功后,可以使用kubectl port-forward命令将Sentry暴露在本地端口。访问http://localhost:9000/即可查看Sentry界面。 6. 最佳实践:建议您使用Kubernetes的最佳实践来部署Sentry应用程序。这些最佳实践可以在Kubernetes文档和Sentry文档中找到。例如,使用Kubernetes的Liveness和Readiness探针来检查Sentry应用程序是否健康运行。 总之,使用Kubernetes部署Sentry可以让我们更高效地管理和扩展Sentry应用程序。同时,它确保了应用程序的高可用性和弹性。如果您还没有尝试过Kubernetes部署Sentry,建议您自己动手做一下,体验一下它的优势。 ### 回答3: 随着云计算技术的不断发展和普及,容器化技术的应用也越来越广泛。而Kubernetes作为一款开源的容器编排系统,其在容器化应用部署管理方面具有独特的优势和应用场景。本文将从Kubernetes部署Sentry的角度探讨如何利用Kubernetes进行Sentry部署。 1. Sentry简介 Sentry是一款开源的实时错误追踪和日志记录工具。其提供了完整的错误追踪解决方案,可帮助开发人员及时发现和修复应用程序的错误,提高应用程序的稳定性和可靠性。 在Sentry部署过程中,我们需要关注一些关键要素,如Sentry后端存储、前端图形界面以及Sentry Worker等。 2. Kubernetes简介 Kubernetes是一款基于容器化技术的开放源代码容器编排系统,旨在自动化容器部署、扩展和管理。其有着自身的部署架构和资源调度算法,可以帮助我们在复杂的容器化应用场景下进行整体的应用部署管理和运维。 在使用Kubernetes部署Sentry的过程中,我们需要了解Kubernetes的基础知识,如Kubernetes中的Pod、Service、ReplicaSet、Deployment等资源对象,以及Kubernetes的资源调度和容错机制等。 3. Kubernetes部署Sentry 接下来我们将探讨基于Kubernetes部署Sentry的具体步骤: 步骤一:准备Kubernetes环境 我们需要准备一台Kubernetes的集群环境,在此不详细阐述搭建Kubernetes环境的具体步骤。 步骤二:部署Sentry后端存储 在部署Sentry之前,我们需要先部署Sentry后端存储。常用的后端存储有PostgreSQL和MySQL。 我们可以通过以下命令在Kubernetes中创建PostgreSQL存储: ``` kubectl create secret generic sentry-postgres \ --from-literal=POSTGRES_USER=<POSTGRES_USER> \ --from-literal=POSTGRES_PASSWORD=<POSTGRES_PASSWORD> \ --from-literal=POSTGRES_DB=<POSTGRES_DB> kubectl apply -f https://raw.githubusercontent.com/kubernetes/examples/master/staging/postgres/postgres-master.yaml ``` 步骤三:部署Sentry Web 我们可以通过以下命令在Kubernetes中创建Sentry Web: ``` kubectl apply -f https://raw.githubusercontent.com/getsentry/onpremise/master/sentry-web.yaml ``` 步骤四:部署Sentry Worker 我们可以通过以下命令在Kubernetes中创建Sentry Worker: ``` kubectl apply -f https://raw.githubusercontent.com/getsentry/onpremise/master/sentry-worker.yaml ``` 步骤五:创建Sentry Service 我们可以通过以下命令创建Sentry的Service: ``` kubectl apply -f https://raw.githubusercontent.com/getsentry/onpremise/master/sentry-service.yaml ``` 至此,我们成功地在Kubernetes中部署Sentry。 4. 总结 本文通过介绍Sentry和Kubernetes的基础知识,详细阐述了基于Kubernetes进行Sentry部署的具体步骤。随着云计算和容器化技术的应用不断发展和普及,我们相信Kubernetes和Sentry将会在各自的领域中发挥出更加重要的作用,为我们提供更加高效、可靠的基础设施和应用解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值