Используйте несколько Azure Application Insights в одном приложении Flask
Привет, у меня есть приложение flask, которое создается как образ докера и служит API.
этот образ развернут в нескольких средах (DEV/QA/PROD)
я хочу использовать applicationInsight для каждой среды
использование одного приложения Insight работает нормально
вот фрагмент кода
app.config['APPINSIGHTS_INSTRUMENTATIONKEY'] = APPINSIGHTS_INSTRUMENTATIONKEY
appinsights = AppInsights(app)
@app.after_request
def after_request(response):
appinsights.flush()
return response
но чтобы иметь несколько приложений, мне нужно настроить app.config с ключом понимания приложения.
я думал об этом решении, которое содержит ошибки
вот фрагмент:
app = Flask(__name__)
def monitor(key):
app.config['APPINSIGHTS_INSTRUMENTATIONKEY'] = key
appinsights = AppInsights(app)
@app.after_request
def after_request(response):
appinsights.flush()
return response
@app.route("/")
def hello():
hostname = urlparse(request.base_url).hostname
print(hostname)
if hostname == "dev url":
print('Dev')
monitor('3ed57a90-********')
if hostname == "prod url":
print('prod')
monitor('941caeca-********-******')
return "hello"
но, видимо, Flask не может обработать свойства после выполнения запроса
сообщение об ошибке :
AssertionError: метод установки errorhandler больше не может быть вызван в приложении. Он уже обработал свой первый запрос, любые изменения не будут применяться последовательно. Прежде чем запускать приложение, убедитесь, что все импорты, декораторы, функции и т. д., необходимые для настройки приложения, выполнены.
я надеюсь, что кто-то может помочь мне найти лучшее решение
заранее спасибо