When to Use the Persistor?
Karlo K edited this page Dec 11, 2020
·
2 revisions
An obvious question that may arise, just from the sheer number of possible variants and possibilities, is: which option is better? And what are the limitations of them?
Below are some of the most important things to keep in mind, depending on the variant used for a particular service:
TYPE | NOTES |
---|---|
GENERAL BINDING NOTES |
|
EVENT GRID |
|
EVENT HUB |
|
SERVICE BUS |
|
TYPE | NOTES |
---|---|
GENERAL PULL NOTES |
|
EVENT HUB |
RECEIVE CANCELLED PREMATURELY! EXPECT {N} MESSAGES TO BE DUPLICATED IN NEXT RUN!
|
SERVICE BUS |
|
- Testing was done under the Consumption Plan.
- The Storage Account used was V2.
- During testing, we found a large number of ClientOtherError errors logged per minute on the Storage Account (the actual number depends on the service being tested and whether or not the append blob feature is used; much larger on Event Grid, generally). The number of these errors does not reflect the number of messages lost. In fact, it seems completely unrelated, as there were numerous tests where all the messages were stored, in spite of the aforementioned errors. As of now, their cause is unknown; the Persistor is set up to catch and log exceptions relevant to actual storing -- whatever this error is, it is being caused by Persistor activity, but does not seem to impact the Persistor's storage capabilities.
- The following error will often be found in the traces table of your Application Insights. It is a well-known one, and present with Azure Functions written in Python:
AI: Local storage access has resulted in an error (User: app) (CustomFolder: ). If you want Application Insights SDK to store telemetry locally on disk in case of transient network issues please give the process access to %LOCALAPPDATA% or %TEMP% folder. If application is running in non-windows platform, create StorageFolder yourself, and set ServerTelemetryChannel.StorageFolder to the custom folder name. After you gave access to the folder you need to restart the process. Currently monitoring will continue but if telemetry cannot be sent it will be dropped. Error message: .