@@ -151,22 +151,24 @@ async fn process_changes(
151
151
) ;
152
152
153
153
let mut dispatch_event = change_event. clone ( ) ;
154
- dispatch_event[ "metadata" ] [ "tracking" ] [ "source" ] [ "changeDispatcherStart_ms" ] =
155
- match serde_json:: to_value ( chrono:: Utc :: now ( ) . timestamp_millis ( ) ) {
154
+
155
+ // Start time, measured in nanoseconds
156
+ dispatch_event[ "metadata" ] [ "tracking" ] [ "source" ] [ "changeDispatcherStart_ns" ] =
157
+ match serde_json:: to_value ( chrono:: Utc :: now ( ) . timestamp_nanos ( ) ) {
156
158
Ok ( val) => val,
157
159
Err ( _) => {
158
160
return Err ( Box :: < dyn std:: error:: Error > :: from (
159
161
"Error serializing timestamp into json value" ,
160
162
) ) ;
161
163
}
162
164
} ;
163
- dispatch_event[ "metadata" ] [ "tracking" ] [ "source" ] [ "changeDispatcherEnd_ms" ] =
164
- match serde_json:: to_value ( 0 ) {
165
- Ok ( val) => val,
166
- Err ( _) => {
167
- unreachable ! ( ) ;
168
- }
169
- } ;
165
+ // dispatch_event["metadata"]["tracking"]["source"]["changeDispatcherEnd_ms"] =
166
+ // match serde_json::to_value(0) {
167
+ // Ok(val) => val,
168
+ // Err(_) => {
169
+ // unreachable!();
170
+ // }
171
+ // };
170
172
171
173
let subscriptions = match change_event[ "subscriptions" ] . as_array ( ) {
172
174
Some ( subs) => subs. clone ( ) ,
@@ -185,15 +187,7 @@ async fn process_changes(
185
187
for query_node_id in query_nodes {
186
188
let app_id = format ! ( "{}-publish-api" , query_node_id) ;
187
189
188
- dispatch_event[ "metadata" ] [ "tracking" ] [ "source" ] [ "changeDispatcherEnd_ms" ] =
189
- match serde_json:: to_value ( chrono:: Utc :: now ( ) . timestamp_millis ( ) ) {
190
- Ok ( val) => val,
191
- Err ( _) => {
192
- return Err ( Box :: < dyn std:: error:: Error > :: from (
193
- "Error serializing timestamp into json value" ,
194
- ) ) ;
195
- }
196
- } ;
190
+
197
191
let queries: Vec < _ > = subscriptions
198
192
. iter ( )
199
193
. filter ( |x| x[ "queryNodeId" ] == query_node_id)
@@ -213,6 +207,17 @@ async fn process_changes(
213
207
headers. insert ( "traceparent" . to_string ( ) , traceparent. clone ( ) ) ;
214
208
}
215
209
let headers = Headers :: new ( headers) ;
210
+
211
+ // End time, measured in nanoseconds
212
+ dispatch_event[ "metadata" ] [ "tracking" ] [ "source" ] [ "changeDispatcherEnd_ns" ] =
213
+ match serde_json:: to_value ( chrono:: Utc :: now ( ) . timestamp_nanos ( ) ) {
214
+ Ok ( val) => val,
215
+ Err ( _) => {
216
+ return Err ( Box :: < dyn std:: error:: Error > :: from (
217
+ "Error serializing timestamp into json value" ,
218
+ ) ) ;
219
+ }
220
+ } ;
216
221
match invoker
217
222
. invoke (
218
223
Payload :: Json ( dispatch_event. clone ( ) ) ,
0 commit comments