0

アプリケーションに App Insights を追加して以来、この質問と同様の問題が発生しています。この他の質問にも関連している可能性がありますが、どちらもApp Insightsに直接関連しておらず、解決策もありません.

これは django-tasks.log からのエラーです

Data drop 400: 100: Field 'url' on type 'RequestData' is too long. Expected: 2048 characters, Actual: 3701 {'iKey': <uuid>, 'tags': {'ai.cloud.role': 'manage.py', 'ai.cloud.roleInstance': <instance>, 'ai.device.id': <device>, 'ai.device.locale': 'en_US', 'ai.device.osVersion': '#1 SMP Tue Aug 25 17:23:54 UTC 2020', 'ai.device.type': 'Other', 'ai.internal.sdkVersion': 'py3.6.12:oc0.7.11:ext1.0.4', 'ai.operation.id': 'fcbe18bf6ca9036aa4546af171f3e877', 'ai.operation.name': 'GET /<my_url>/'}, 'time': '2020-12-15T17:58:36.498868Z', 'name': 'Microsoft.ApplicationInsights.Request', 'data': {'baseData': {'id': '116a0658b513bdb9', 'duration': '0.00:00:00.096', 'responseCode': '200', 'success': True, 'properties': {'request.name': 'GET /<my_url>/', 'request.url': 'https://<my host>/<my_url>/?<my very long query string>', 'django.user.id': '90', 'django.user.name': '100044505'}, 'ver': 2, 'name': 'GET /<my_url>/', 'url': 'https://<my host>/<my_url>/?<my very long query string>', 'source': None, 'measurements': None}, 'baseType': 'RequestData'}, 'ver': 1, 'sampleRate': None, 'seq': None, 'flags': None}.

ログでもこれが繰り返されていることがわかります。

Queue is full. Dropping telemetry.
Queue is full. Dropping telemetry.
Queue is full. Dropping telemetry.
Queue is full. Dropping telemetry.
Queue is full. Dropping telemetry.
Queue is full. Dropping telemetry.

より短いクエリを使用するようにアプリを書き直すこともできますが、それは間違った答えのようです。長い URL をサポートするように django を構成する方法はありますか。

4

1 に答える 1

0

バッファは変更できませんが、フィルタを使用して URL のサイズを制限できます。エクスポートされたトレースをカスタマイズするには、個別にインスタンス化する必要があります。

def shorten_url(envelope):
if 25 < len(envelope.data.baseData.url):
    envelope.data.baseData["url"] = envelope.data.baseData.url[:25]+"..." 
return True

from opencensus.ext.azure.trace_exporter import AzureExporter
exporter = AzureExporter(service_name='mysite')
exporter.add_telemetry_processor(shorten_url)

OPENCENSUS = {
    'TRACE': {
         'SAMPLER': 'opencensus.trace.samplers.ProbabilitySampler(rate=1)',
         'EXPORTER': exporter
     #Assumes Environmental Variable 'APPINSIGHTS_INSTRUMENTATIONKEY'
    }
}

完全な作業例: https://github.com/Gamecock/Django-appinsights-example

于 2021-01-09T22:51:20.617 に答える