{"id":39223151,"url":"https://github.com/aliceo2group/o2dissociator","last_synced_at":"2026-01-17T23:31:31.844Z","repository":{"id":83864487,"uuid":"178206757","full_name":"AliceO2Group/O2Dissociator","owner":"AliceO2Group","description":"a custom XCode Instruments plugin for AliceO2","archived":false,"fork":false,"pushed_at":"2019-04-01T13:53:07.000Z","size":909,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-09-09T03:59:10.771Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AliceO2Group.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-03-28T13:14:00.000Z","updated_at":"2022-06-06T06:40:14.000Z","dependencies_parsed_at":null,"dependency_job_id":"3633798f-764b-4314-9b72-692764a9b2c3","html_url":"https://github.com/AliceO2Group/O2Dissociator","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AliceO2Group/O2Dissociator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AliceO2Group%2FO2Dissociator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AliceO2Group%2FO2Dissociator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AliceO2Group%2FO2Dissociator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AliceO2Group%2FO2Dissociator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AliceO2Group","download_url":"https://codeload.github.com/AliceO2Group/O2Dissociator/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AliceO2Group%2FO2Dissociator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28522306,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T22:11:28.393Z","status":"ssl_error","status_checked_at":"2026-01-17T22:11:27.841Z","response_time":85,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-17T23:31:31.741Z","updated_at":"2026-01-17T23:31:31.832Z","avatar_url":"https://github.com/AliceO2Group.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# O2 Dissociator : an Instruments plugin for AliceO2\n\nThis is a custom plugin for [Apple\nInstruments](https://help.apple.com/instruments/mac/10.0/) (the profiler\nFramework / GUI part of Apple's XCode developer suite). It allows for custom\nviews on the state of an Alice O2 processes, in particular (but not limited to)\nthose which use the Data Processing Layer.\n\nIt adds the following Instruments:\n\n* O2 DPL State: which shows details about the current state of all the data\n  processing devices, in particular:\n   * It shows the intevals where a given device is DPL / FairMQ overhead.\n   * It shows the intervals where a given device is in user processing callback.\n   * It shows the intervals where a given device is in the error processing callback.\n\n* O2 Driver Stats: which shows details about the current state of the DPL driver processing,\n  in particular:\n   * Amount of input logs read for each child.\n   * Amount of input logs processed for each child.\n\n* O2 Monitoring State: which shows details about the monitorning subsystem, as integrated in DPL.\n  In particular it shows:\n   * The intervals when relayed metrics are sent.\n   * The intervals when all metrics are flushed.\n\n## How does it work?\n\nThe traces are gathered via the mechanism provided in `Framework/Signpost.h`, i.e. the macros:\n\n```\nO2_SIGNPOST(...)\nO2_SIGNPOST_START(...)\nO2_SIGNPOST_END(...)\n```\n\nwhich are loosely documented at\n(https://aliceo2group.github.io/AliceO2/db/de5/Signpost_8h.html). The macros\nthemself are wrappers around the Apple `kdebug_signpost` mechanism (see for\nexample presentation at \u003chttps://developer.apple.com/videos/play/wwdc2016/411/\u003e\n).\n\nThe actual instrument is created following the instructions at:\n\nhttps://help.apple.com/instruments/developer/mac/current/\n\nin order to extend it you need to have a look at the XML file `O2/O2.instpkg`\nfeel free to ask for help if you have signposts / intervals for which you would\nlike to have a custom instrument.\n\n## What about linux?\n\nIn case you are using a Linux box (suggestions for alternatives to Instruments on Linux welcome),\nthis plugin will not be of much use, however the instrumentation in O2 using `O2_SIGNPOST`\nwill still be available via SystemTap.\n\n## Obligatory screenshot:\n\n![screenshot](screenshot.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faliceo2group%2Fo2dissociator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faliceo2group%2Fo2dissociator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faliceo2group%2Fo2dissociator/lists"}