Skip to content

[DEV] Sentry release版本处理与production环境处理 #38

Open
kazami139 opened this issue Mar 12, 2023 · 11 comments · Fixed by #39
Open

[DEV] Sentry release版本处理与production环境处理 #38

kazami139 opened this issue Mar 12, 2023 · 11 comments · Fixed by #39
Assignees
Labels
enhancement New feature or request

Comments

@kazami139
Copy link
Member

https://sentry.vtb.link/organizations/eoefans/issues/?project=6&project=7

目前已存在的issues是并没有绑定到任何环境的,但实际上都发生在production中。
环境绑定续单独处理。

https://sentry.vtb.link/organizations/eoefans/releases/?project=6&project=7

版本号目前虽然使用了sentry发布,但实际上上报的版本还停留在v1.0.19,且切换到production后只有手动发布的版本。

@kazami139 kazami139 added the enhancement New feature or request label Mar 12, 2023
runs added a commit that referenced this issue Mar 14, 2023
@runs
Copy link
Member

runs commented Mar 14, 2023

我已经准备好本次修复的内容,以下是注意事项

  • 新增sentry config选项 level
    • 我在config.template.yml 提供了该选项的可选内容
    • 此选项影响log时最小发送给sentry的异常级别
  • sentry config 选项中 dsn 为空时不会初始化sentry,所以本地开发时可以使用空dsn来避免调试错误被发送到 sentry
  • 新增 file version

@kazami139 确认是否准备好version的支持内容

如果你已经完成 可以合并此分支并尝试发布

*出于兼容性考虑,在提供了错误的版本信息时,或未提供版本信息文件时,我仅会skip这些选项,而非异常退出

@kazami139
Copy link
Member Author

kazami139 commented Mar 14, 2023

  • 生产环境补充新的config选项
  • CI环境新增version写入

@kazami139
Copy link
Member Author

kazami139 commented Mar 14, 2023

Done. Waiting for PR merge.

@kazami139
Copy link
Member Author

#38 都修完了你是把 #19 忘了是吧

@runs
Copy link
Member

runs commented Mar 14, 2023

#38 都修完了你是把 #19 忘了是吧

这个不急.jpg

@kazami139
Copy link
Member Author

Not finish, still need tuning.

@kazami139 kazami139 reopened this Mar 15, 2023
@kazami139
Copy link
Member Author

引入仍有问题。新的issue依旧分配至1.0.19

(%L% 8XHK818{JP2M A@IE0

@kazami139
Copy link
Member Author

kazami139 commented Mar 17, 2023

issue的版本上报已完成,解决方法是:将版本信息打入容器内的环境变量,由代码引用。

ARG SENTRY_RELEASE
ENV SENTRY_RELEASE $IMAGE_TAG
ARG VERSION
ENV VERSION $IMAGE_TAG

image

@kazami139
Copy link
Member Author

kazami139 commented Mar 17, 2023

我希望 @runs 能在这里额外加入对于environment的读取(production, dev, debug等),让我能够直接在config.yaml里面设定当前服务运行的环境。

type SentryConfig struct {
Level string `json:"level" yaml:"level" env:"SENTRY_LEVEL"`
DSN string `json:"dsn" yaml:"dsn" env:"SENTRY_DSN"`
EnableTracing bool `json:"enable_tracing" yaml:"enable_tracing" env:"SENTRY_ENABLE_TRACING"`
Release string `json:"release" yaml:"release" env:"SENTRY_RELEASE"`
// Set TracesSampleRate to 1.0 to capture 100%
// of transactions for performance monitoring.
// We recommend adjusting this value in production,
TracesSampleRate float64 `json:"traces_sample_rate" yaml:"traces_sample_rate" env:"SENTRY_TRACES_SAMPLE_RATE"`
}

@kazami139
Copy link
Member Author

或者,看起来Azure的自动化能够直接配置相关应用服务环境的环境变量。也把从环境变量读取environment加进去吧。
https://github.com/Azure/actions-workflow-samples/blob/f44ade14d3a40acb356fd21a096a61024a10b215/AppService/docker-webapp-container-on-azure.yml#L44-L66

@kazami139
Copy link
Member Author

kazami139 commented Mar 17, 2023

已成功在GitHub action中实现修改azure应用服务的环境变量。
https://vlink.dev/EOEFANS/eoefans-api/actions/runs/1417/jobs/2179#step:9:53
image

- name: Set Web App configuration
uses: Azure/appservice-settings@v1
with:
app-name: ${{ env.AZURE_WEBAPP_NAME }}
app-settings-json: |
[
{
"name": "DOCKER_REGISTRY_SERVER_PASSWORD",
"value": "${{ secrets.GITHUB_TOKEN }}",
"slotSetting": false
},
{
"name": "DOCKER_REGISTRY_SERVER_URL",
"value": "https://${{ env.IMAGE_REGISTRY }}",
"slotSetting": false
},
{
"name": "DOCKER_REGISTRY_SERVER_USERNAME",
"value": "${{ github.actor }}",
"slotSetting": false
},
{
"name": "SENTRY_RELEASE",
"value": "${{ env.DEPLOY_VERSION }}",
"slotSetting": false
},
{
"name": "SENTRY_ENV",
"value": "production",
"slotSetting": false
},
{
"name": "VERSION",
"value": "${{ env.DEPLOY_VERSION }}",
"slotSetting": false
}
]

Sign in to join this conversation on GitHub.
Labels
enhancement New feature or request
Projects
Status: 🏗 In progress
Development

Successfully merging a pull request may close this issue.

2 participants