{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":810979111,"defaultBranch":"main","name":"v4-latency-scripts","ownerLogin":"dydxprotocol","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2024-06-05T17:56:44.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/35151859?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1726711008.0","currentOid":""},"activityList":{"items":[{"before":"55fa4997c29ceeb2e3d8a8068c61338fd84619c7","after":"7b0459913b451e4f8254e8e45781d6c0af61b87b","ref":"refs/heads/main","pushedAt":"2024-09-23T14:24:48.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"matthewdowney","name":"Matthew Downey","path":"/matthewdowney","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7322450?s=80&v=4"},"commit":{"message":"Maintenance and bugfixes (#13)\n\n* Fix bug that double ran place_stateful_orders.py each restart\r\n\r\n* Try terminate and kill in run_all_scripts.py + add more logging\r\n\r\n* Fix asyncio event-loop blocking in place_stateful_orders.py\r\n\r\n* Add more detailed logging for BigQuery insert errors\r\n\r\n* Update clob pair id + add TODOs for code cleanup\r\n\r\n* Refactor precompute_order to not need to query the chain\r\n\r\n* Update place_orders.py to only use asyncio-friendly code\r\n\r\n* Handle place_stateful_orders.py account sequence bug\r\n\r\n* Bump clob pair id to 1000 to cover future market listings\r\n\r\n* Update batch writer to fall back to GCS insert automatically","shortMessageHtmlLink":"Maintenance and bugfixes (#13)"}},{"before":"ee6376a147402b07670278878ed387ebe3de4c5a","after":"ff6fdc55074f9607c4fa3db63617bfa77e108a0b","ref":"refs/heads/matt/maintenance","pushedAt":"2024-09-20T20:32:46.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"matthewdowney","name":"Matthew Downey","path":"/matthewdowney","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7322450?s=80&v=4"},"commit":{"message":"Update batch writer to fall back to GCS insert automatically","shortMessageHtmlLink":"Update batch writer to fall back to GCS insert automatically"}},{"before":"9c6f7d0644a2b3cdc7ed77b5c5d855f4a1de722f","after":"ee6376a147402b07670278878ed387ebe3de4c5a","ref":"refs/heads/matt/maintenance","pushedAt":"2024-09-20T18:24:43.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"matthewdowney","name":"Matthew Downey","path":"/matthewdowney","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7322450?s=80&v=4"},"commit":{"message":"Update place_orders.py to only use asyncio-friendly code","shortMessageHtmlLink":"Update place_orders.py to only use asyncio-friendly code"}},{"before":null,"after":"9c6f7d0644a2b3cdc7ed77b5c5d855f4a1de722f","ref":"refs/heads/matt/maintenance","pushedAt":"2024-09-19T01:56:48.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"matthewdowney","name":"Matthew Downey","path":"/matthewdowney","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7322450?s=80&v=4"},"commit":{"message":"Update clob pair id + add TODOs for code cleanup","shortMessageHtmlLink":"Update clob pair id + add TODOs for code cleanup"}},{"before":"f63238b7a64d5e132900b77775f683ec58d6077e","after":"55fa4997c29ceeb2e3d8a8068c61338fd84619c7","ref":"refs/heads/main","pushedAt":"2024-08-28T14:28:59.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"matthewdowney","name":"Matthew Downey","path":"/matthewdowney","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7322450?s=80&v=4"},"commit":{"message":"Sideload large inserts (book snapshots) into BQ via a GCS bucket (#12)\n\n* Add shutdown logging to place orders tasks\r\n\r\n* Add helper to side load large rows into BQ via GCS bucket\r\n\r\n* Update grpc stream listener to use GCS for large inserts\r\n\r\n* Rename shared schema, time partitioning, clustering for order placements\r\n\r\n* Handle race condition in GCS bucket creation\r\n\r\n* Set GCS sideloading bucket retention policy to 1 day max\r\n\r\n* Bump the msg size threshold for sideloading to 5m characters\r\n\r\n* Add back in mistakenly deleted grpcio requirement\r\n\r\n* Add integration test instructions to README","shortMessageHtmlLink":"Sideload large inserts (book snapshots) into BQ via a GCS bucket (#12)"}},{"before":"c3cc8dfacf13611e3b223db20e6267269323431c","after":"d55c57b1bdcc6713026785a74463e0f2e078870e","ref":"refs/heads/matt/large-bq-inserts","pushedAt":"2024-08-28T01:04:25.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"matthewdowney","name":"Matthew Downey","path":"/matthewdowney","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7322450?s=80&v=4"},"commit":{"message":"Add integration test instructions to README","shortMessageHtmlLink":"Add integration test instructions to README"}},{"before":"277541f8084910925bd944024e82f3fe25caf88a","after":"c3cc8dfacf13611e3b223db20e6267269323431c","ref":"refs/heads/matt/large-bq-inserts","pushedAt":"2024-08-28T00:49:13.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"matthewdowney","name":"Matthew Downey","path":"/matthewdowney","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7322450?s=80&v=4"},"commit":{"message":"Bump the msg size threshold for sideloading to 5m characters","shortMessageHtmlLink":"Bump the msg size threshold for sideloading to 5m characters"}},{"before":"98291033e6bb3993c6d2e2e067cf71515cb4dafc","after":"277541f8084910925bd944024e82f3fe25caf88a","ref":"refs/heads/matt/large-bq-inserts","pushedAt":"2024-08-28T00:41:23.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"matthewdowney","name":"Matthew Downey","path":"/matthewdowney","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7322450?s=80&v=4"},"commit":{"message":"Bump the msg size threshold for sideloading to 5m characters","shortMessageHtmlLink":"Bump the msg size threshold for sideloading to 5m characters"}},{"before":"ec83e866704daa963c5cd283bd9ba9b96722dda2","after":"98291033e6bb3993c6d2e2e067cf71515cb4dafc","ref":"refs/heads/matt/large-bq-inserts","pushedAt":"2024-08-28T00:38:07.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"matthewdowney","name":"Matthew Downey","path":"/matthewdowney","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7322450?s=80&v=4"},"commit":{"message":"Bump the msg size threshold for sideloading to 5m characters","shortMessageHtmlLink":"Bump the msg size threshold for sideloading to 5m characters"}},{"before":"6a158e1addb8a947fb3bd4cc6841156971c13a8c","after":"f63238b7a64d5e132900b77775f683ec58d6077e","ref":"refs/heads/main","pushedAt":"2024-08-27T22:56:43.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"matthewdowney","name":"Matthew Downey","path":"/matthewdowney","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7322450?s=80&v=4"},"commit":{"message":"Make misc improvements to logging, error handling, awaiting placements (#11)\n\n* Avoid placing > 1 stateful order batches concurrently\r\n\r\n* Remove whitespace in gRPC JSON to fit within BQ size limit\r\n\r\n* Sleep before all gRPC stream reconnect attempts\r\n\r\n* Add log rotation, consistent naming and level\r\n\r\n* Update run_all_scripts conf to use new \"full_node_addresses\" field\r\n\r\n* Add shutdown logging to place orders tasks\r\n\r\n* Update clob pair ids to include up to 133\r\n\r\n* Restart script when unable to retrieve timestamp\r\n\r\n* Replace print -> logging.*\r\n\r\n* Update placement helpers to always await order placement\r\n\r\n* Update v4-proto requirement to v5.2.2\r\n\r\n* Upgrade grpcio version","shortMessageHtmlLink":"Make misc improvements to logging, error handling, awaiting placements ("}},{"before":"c313ffa10068b8b54dcbdb8a4608642995fcd7a3","after":"e12bdfbd49e5a25567773517d228197aad3a3d1e","ref":"refs/heads/matt/keep-collection-alive","pushedAt":"2024-08-27T14:47:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"matthewdowney","name":"Matthew Downey","path":"/matthewdowney","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7322450?s=80&v=4"},"commit":{"message":"Upgrade grpcio version","shortMessageHtmlLink":"Upgrade grpcio version"}},{"before":"e1f1701fc634377950cbff62cd5db1bc28a8ba50","after":"ec83e866704daa963c5cd283bd9ba9b96722dda2","ref":"refs/heads/matt/large-bq-inserts","pushedAt":"2024-08-27T14:04:07.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"matthewdowney","name":"Matthew Downey","path":"/matthewdowney","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7322450?s=80&v=4"},"commit":{"message":"Handle race condition in GCS bucket creation","shortMessageHtmlLink":"Handle race condition in GCS bucket creation"}},{"before":"6120f6102c8a2e2601781d4a2adee2729adaada8","after":"c313ffa10068b8b54dcbdb8a4608642995fcd7a3","ref":"refs/heads/matt/keep-collection-alive","pushedAt":"2024-08-26T20:57:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"matthewdowney","name":"Matthew Downey","path":"/matthewdowney","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7322450?s=80&v=4"},"commit":{"message":"Update v4-proto requirement to v5.2.2","shortMessageHtmlLink":"Update v4-proto requirement to v5.2.2"}},{"before":null,"after":"e1f1701fc634377950cbff62cd5db1bc28a8ba50","ref":"refs/heads/matt/large-bq-inserts","pushedAt":"2024-08-25T19:07:35.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"matthewdowney","name":"Matthew Downey","path":"/matthewdowney","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7322450?s=80&v=4"},"commit":{"message":"Rename shared schema, time partitioning, clustering for order placements","shortMessageHtmlLink":"Rename shared schema, time partitioning, clustering for order placements"}},{"before":"6dc8475436b1a0510b9c8751b38438c492bcb544","after":"6120f6102c8a2e2601781d4a2adee2729adaada8","ref":"refs/heads/matt/keep-collection-alive","pushedAt":"2024-08-25T15:19:20.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"matthewdowney","name":"Matthew Downey","path":"/matthewdowney","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7322450?s=80&v=4"},"commit":{"message":"Update placement helpers to always await order placement","shortMessageHtmlLink":"Update placement helpers to always await order placement"}},{"before":"ef59b8aeafdfccb6c011ff6cdca899e06e3c9392","after":"6dc8475436b1a0510b9c8751b38438c492bcb544","ref":"refs/heads/matt/keep-collection-alive","pushedAt":"2024-08-22T19:20:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"matthewdowney","name":"Matthew Downey","path":"/matthewdowney","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7322450?s=80&v=4"},"commit":{"message":"Replace print -> logging.*","shortMessageHtmlLink":"Replace print -> logging.*"}},{"before":"a46ee410d2d69266e66dbba85088448311fb7669","after":"ef59b8aeafdfccb6c011ff6cdca899e06e3c9392","ref":"refs/heads/matt/keep-collection-alive","pushedAt":"2024-08-22T19:14:16.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"matthewdowney","name":"Matthew Downey","path":"/matthewdowney","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7322450?s=80&v=4"},"commit":{"message":"Restart script when unable to retrieve timestamp","shortMessageHtmlLink":"Restart script when unable to retrieve timestamp"}},{"before":"777548f01e23f0c45c6ebc1ac60227d7900cd19c","after":"a46ee410d2d69266e66dbba85088448311fb7669","ref":"refs/heads/matt/keep-collection-alive","pushedAt":"2024-08-22T19:06:38.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"matthewdowney","name":"Matthew Downey","path":"/matthewdowney","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7322450?s=80&v=4"},"commit":{"message":"Update clob pair ids to include up to 133","shortMessageHtmlLink":"Update clob pair ids to include up to 133"}},{"before":"3cb09ae2f36d3ca09161c634622d6149af808fb5","after":"777548f01e23f0c45c6ebc1ac60227d7900cd19c","ref":"refs/heads/matt/keep-collection-alive","pushedAt":"2024-08-22T18:41:18.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"matthewdowney","name":"Matthew Downey","path":"/matthewdowney","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7322450?s=80&v=4"},"commit":{"message":"Add log rotation, consistent naming and level","shortMessageHtmlLink":"Add log rotation, consistent naming and level"}},{"before":"256ef8cdae00b784bc1a604e63d8385b906965a6","after":"3cb09ae2f36d3ca09161c634622d6149af808fb5","ref":"refs/heads/matt/keep-collection-alive","pushedAt":"2024-08-21T20:59:22.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"matthewdowney","name":"Matthew Downey","path":"/matthewdowney","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7322450?s=80&v=4"},"commit":{"message":"Sleep before all gRPC stream reconnect attempts","shortMessageHtmlLink":"Sleep before all gRPC stream reconnect attempts"}},{"before":"4decb3d91ce7c20aac186e92780d3f60809e46a3","after":"256ef8cdae00b784bc1a604e63d8385b906965a6","ref":"refs/heads/matt/keep-collection-alive","pushedAt":"2024-08-21T20:50:14.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"matthewdowney","name":"Matthew Downey","path":"/matthewdowney","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7322450?s=80&v=4"},"commit":{"message":"Sleep before all gRPC stream reconnect attempts","shortMessageHtmlLink":"Sleep before all gRPC stream reconnect attempts"}},{"before":"bff857484ccba24f8fff77057a95923218c7cf1f","after":"4decb3d91ce7c20aac186e92780d3f60809e46a3","ref":"refs/heads/matt/keep-collection-alive","pushedAt":"2024-08-21T17:29:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"matthewdowney","name":"Matthew Downey","path":"/matthewdowney","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7322450?s=80&v=4"},"commit":{"message":"Remove whitespace in gRPC JSON to fit within BQ size limit","shortMessageHtmlLink":"Remove whitespace in gRPC JSON to fit within BQ size limit"}},{"before":null,"after":"bff857484ccba24f8fff77057a95923218c7cf1f","ref":"refs/heads/matt/keep-collection-alive","pushedAt":"2024-08-21T17:23:11.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"matthewdowney","name":"Matthew Downey","path":"/matthewdowney","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7322450?s=80&v=4"},"commit":{"message":"Avoid placing > 1 stateful order batches concurrently","shortMessageHtmlLink":"Avoid placing > 1 stateful order batches concurrently"}},{"before":"16fa51555e942b3a9d8500322cadad21d6e80779","after":"6a158e1addb8a947fb3bd4cc6841156971c13a8c","ref":"refs/heads/main","pushedAt":"2024-07-23T18:12:42.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yang-dydx","name":null,"path":"/yang-dydx","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/117109716?s=80&v=4"},"commit":{"message":"add all markets (#10)","shortMessageHtmlLink":"add all markets (#10)"}},{"before":null,"after":"0aec74d09e67026562589441ac673155971a29db","ref":"refs/heads/yang/update_clob_pair","pushedAt":"2024-07-23T17:00:49.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"yang-dydx","name":null,"path":"/yang-dydx","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/117109716?s=80&v=4"},"commit":{"message":"add all markets","shortMessageHtmlLink":"add all markets"}},{"before":"d33d756a605f90ce270c3b5c8f14edb97a3f4105","after":"16fa51555e942b3a9d8500322cadad21d6e80779","ref":"refs/heads/main","pushedAt":"2024-07-17T03:37:58.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yang-dydx","name":null,"path":"/yang-dydx","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/117109716?s=80&v=4"},"commit":{"message":"process kill (#9)","shortMessageHtmlLink":"process kill (#9)"}},{"before":null,"after":"8613123fa36acc8f9845b6cb1338590c7b8869c9","ref":"refs/heads/yang/kill","pushedAt":"2024-07-16T22:24:39.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"yang-dydx","name":null,"path":"/yang-dydx","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/117109716?s=80&v=4"},"commit":{"message":"process kill","shortMessageHtmlLink":"process kill"}},{"before":"d5e58d0b31149372548975ec84b5d5affb61b4ed","after":"d33d756a605f90ce270c3b5c8f14edb97a3f4105","ref":"refs/heads/main","pushedAt":"2024-07-16T16:26:53.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yang-dydx","name":null,"path":"/yang-dydx","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/117109716?s=80&v=4"},"commit":{"message":"clean up and refactor scripts (#8)\n\n* refactor\r\n\r\n* add third full node\r\n\r\n* remove taker orders\r\n\r\n* switch to distribution\r\n\r\n* change api\r\n\r\n* send to normal metrics too\r\n\r\n* update to include node to submit to\r\n\r\n* Separate DD Distribution data points by server_address tag\r\n\r\n---------\r\n\r\nCo-authored-by: Matthew Downey ","shortMessageHtmlLink":"clean up and refactor scripts (#8)"}},{"before":"1e1175dfb8471ec6f759f8bd25dd23efab9bfb00","after":"8709284e0162d22ddf46f141a85975478d7ff25b","ref":"refs/heads/yang/refactor","pushedAt":"2024-07-12T17:57:28.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"matthewdowney","name":"Matthew Downey","path":"/matthewdowney","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/7322450?s=80&v=4"},"commit":{"message":"Separate DD Distribution data points by server_address tag","shortMessageHtmlLink":"Separate DD Distribution data points by server_address tag"}},{"before":"ff8df8261eece9c67742c3ca496d99e540df7e06","after":"1e1175dfb8471ec6f759f8bd25dd23efab9bfb00","ref":"refs/heads/yang/refactor","pushedAt":"2024-07-02T21:00:24.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"yang-dydx","name":null,"path":"/yang-dydx","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/117109716?s=80&v=4"},"commit":{"message":"update to include node to submit to","shortMessageHtmlLink":"update to include node to submit to"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0yM1QxNDoyNDo0OC4wMDAwMDBazwAAAAS-Exhq","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0yM1QxNDoyNDo0OC4wMDAwMDBazwAAAAS-Exhq","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNy0wMlQyMTowMDoyNC4wMDAwMDBazwAAAAR1PZh-"}},"title":"Activity ยท dydxprotocol/v4-latency-scripts"}