Ich versuche, ein Plugin basierend auf ServiceStack IPlugin -Schnittstelle zu erstellen, das die Zeit messen kann, die auf dem Operationen und veröffentlichen Sie es in einem Dashboard. Der Code selbst wäre ziemlich einfach und ich habe versucht, es basierend auf einigen Konzepten auf dem Request Logger zu tun.
Dieser Logger verwendet einen StopWatch , der innen hinzugefügt wird die Standard-ServiceRunner-Klasse, aber nur, wenn der Request Logger konfiguriert ist.
Ich habe bereits einen benutzerdefinierten ServiceRunner und der StopWatch wird dort initialisiert, aber dieser Ansatz ist nicht optimal, da das Plugin nicht eigenständig ist.
Mein größtes Problem ist jetzt, dass ich anscheinend nicht auf den IRequestContext zugreifen kann. Gibt es eine Möglichkeit, wie ein Plugin auf diesen Kontext oder auf andere Weise zugreifen kann, um die Zeit für die Ausführung der Anfragen in einem einfachen Plugin zu messen, unabhängig von einem ServiceRunner?
Danke!
Speichern Sie die Startzeit für die Anfrage in einem RequestFilter und berechnen Sie dann in einem ResponseFilter die Uhrzeit mit der aktuellen Uhrzeit minus der Startzeit?
Dies kann auch in einem Plugin geschehen.
Hier ist ein Pseudocode ...
%Vor%Tags und Links c# servicestack