├── .gitignore ├── requirements.txt ├── README.rst ├── make_pages.py └── template.html /.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | build/*.html 3 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | Mako 2 | MarkupSafe 3 | wsgiref 4 | -------------------------------------------------------------------------------- /README.rst: -------------------------------------------------------------------------------- 1 | This is a static-site generator that produces a little dashboard for fedmsg 2 | health. 3 | 4 | The output is currently hosted at http://threebean.org/fedmsg-health.html 5 | -------------------------------------------------------------------------------- /make_pages.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | from mako.template import Template 3 | from collections import OrderedDict 4 | 5 | timespans = OrderedDict([ 6 | ('now', 900), 7 | ('hour', 3600), 8 | ('day', 86400), 9 | ('week', 604800), 10 | ('month', 2628000), 11 | ('year', 365 * 86400), 12 | ]) 13 | 14 | parameters = [ 15 | { 16 | 'consumer': 'Nommer', 17 | 'instance': 'hub', 18 | 'plugin': 'fedmsg', 19 | 'host': 'busgateway01.phx2.fedoraproject.org', 20 | 'title': 'datanommer', 21 | }, { 22 | 'consumer': 'GatewayConsumer', 23 | 'instance': 'gateway', 24 | 'plugin': 'fedmsg', 25 | 'host': 'busgateway01.phx2.fedoraproject.org', 26 | 'title': 'gateway', 27 | }, { 28 | 'consumer': 'RelayConsumer', 29 | 'instance': 'relay', 30 | 'plugin': 'fedmsg', 31 | 'host': 'busgateway01.phx2.fedoraproject.org', 32 | 'title': 'relay', 33 | }, { 34 | 'consumer': 'BugzillaConsumer', 35 | 'instance': 'hub', 36 | 'plugin': 'moksha', 37 | 'host': 'bugzilla2fedmsg01.phx2.fedoraproject.org', 38 | 'title': 'bugzilla2fedmsg', 39 | }, { 40 | 'consumer': 'CacheInvalidator', 41 | 'instance': 'hub', 42 | 'plugin': 'fedmsg', 43 | 'host': 'packages03.phx2.fedoraproject.org', 44 | 'title': 'fedora-packages', 45 | }, { 46 | 'consumer': 'StatsConsumer', 47 | 'instance': 'hub', 48 | 'plugin': 'fedmsg', 49 | 'host': 'statscache-backend01.phx2.fedoraproject.org', 50 | 'title': 'statscache', 51 | }, { 52 | 'consumer': 'FMNConsumer', 53 | 'instance': 'hub', 54 | 'plugin': 'fedmsg', 55 | 'host': 'notifs-backend01.phx2.fedoraproject.org', 56 | 'title': 'FMN', 57 | }, { 58 | 'consumer': 'FedoraBadgesConsumer', 59 | 'instance': 'hub', 60 | 'plugin': 'fedmsg', 61 | 'host': 'badges-backend01.phx2.fedoraproject.org', 62 | 'title': 'badges', 63 | }, { 64 | 'consumer': 'Masher', 65 | 'instance': 'hub', 66 | 'plugin': 'fedmsg', 67 | 'host': 'bodhi-backend01.phx2.fedoraproject.org', 68 | 'title': 'bodhi-masher', 69 | }, { 70 | 'consumer': 'UpdatesHandler', 71 | 'instance': 'hub', 72 | 'plugin': 'fedmsg', 73 | 'host': 'bodhi-backend02.phx2.fedoraproject.org', 74 | 'title': 'bodhi-updates-handler', 75 | }, { 76 | 'consumer': 'BugzillaTicketFiler', 77 | 'instance': 'hub', 78 | 'plugin': 'fedmsg', 79 | 'host': 'hotness01.phx2.fedoraproject.org', 80 | 'title': 'the-new-hotness', 81 | }, { 82 | 'consumer': 'IRCBotConsumer', 83 | 'instance': 'irc', 84 | 'plugin': 'fedmsg', 85 | 'host': 'value01.phx2.fedoraproject.org', 86 | 'title': 'irc', 87 | }, { 88 | 'consumer': 'GenACLsConsumer', 89 | 'instance': 'hub', 90 | 'plugin': 'fedmsg', 91 | 'host': 'pkgs02.phx2.fedoraproject.org', 92 | 'title': 'genacls', 93 | }, { 94 | 'consumer': 'SummerShumConsumer', 95 | 'instance': 'hub', 96 | 'plugin': 'fedmsg', 97 | 'host': 'summershum01.phx2.fedoraproject.org', 98 | 'title': 'summershum', 99 | }, { 100 | 'consumer': 'KojiConsumer', 101 | 'instance': 'hub', 102 | 'plugin': 'fedmsg', 103 | 'host': 'fedimg01.phx2.fedoraproject.org', 104 | 'title': 'fedimg (cloud uploader)', 105 | }, { 106 | 'consumer': 'AutoCloudConsumer', 107 | 'instance': 'hub', 108 | 'plugin': 'fedmsg', 109 | 'host': 'autocloud-backend-libvirt.phx2.fedoraproject.org', 110 | 'title': 'autocloud-backend-libvirt', 111 | }, { 112 | 'consumer': 'AutoCloudConsumer', 113 | 'instance': 'hub', 114 | 'plugin': 'fedmsg', 115 | 'host': 'autocloud-backend-vbox.phx2.fedoraproject.org', 116 | 'title': 'autocloud-backend-vbox', 117 | }, { 118 | 'consumer': 'BugyouConsumer', 119 | 'instance': 'hub', 120 | 'plugin': 'fedmsg', 121 | 'host': 'bugyou01.phx2.fedoraproject.org', 122 | 'title': 'bugyou', 123 | }, { 124 | 'consumer': 'PDCUpdater', 125 | 'instance': 'hub', 126 | 'plugin': 'fedmsg', 127 | 'host': 'pdc-updater01.phx2.fedoraproject.org', 128 | 'title': 'pdc-updater', 129 | }, { 130 | 'consumer': 'FasClientConsumer', 131 | 'instance': 'hub', 132 | 'plugin': 'fedmsg', 133 | 'host': 'batcave01.phx2.fedoraproject.org', 134 | 'title': 'fas_client', 135 | }, 136 | ] 137 | 138 | if __name__ == '__main__': 139 | names = timespans.keys() 140 | for name in names: 141 | html = Template(filename="template.html").render( 142 | name=name, 143 | names=names, 144 | span=timespans[name], 145 | parameters=parameters 146 | ) 147 | 148 | with open('build/fedmsg-health-%s.html' % name, 'w') as f: 149 | f.write(html) 150 | 151 | if name == 'day': 152 | with open('build/fedmsg-health.html', 'w') as f: 153 | f.write(html) 154 | -------------------------------------------------------------------------------- /template.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | fedmsg health 12 | 13 | 14 | 15 | 26 | 27 | 28 | 29 |
30 |
31 | 38 |

fedmsg health

39 |
40 | 41 |
42 |
43 |

44 | The relative health of a number of fedmsg daemons in Fedora Infrastructure. 45 |

46 |
47 |
48 | 49 |
50 |
51 |

db-datanommer

52 |
53 |
54 |
55 |
System Load
56 | 57 | 58 | 59 |
60 |
61 |
Disk Usage (root)
62 | 63 | 64 | 65 |
66 |
67 |
PG Connections
68 | 69 | 70 | 71 |
72 |
73 |
Process State
74 | 75 | 76 | 77 |
78 |
79 | 80 | % for params in parameters: 81 |
82 |
83 |

${params['title']}

84 |
85 |
86 |
87 |
Number In (#M)
88 | 89 | 90 | 91 |
92 |
93 |
Number Out (#M)
94 | 95 | 96 |
97 |
98 |
Backlog (#M)
99 | 100 | 101 | 102 |
103 |
104 |
Exceptions (#E)
105 | 106 | 107 | 108 |
109 |
110 |
111 |
112 |
Average Time / Message (ms/M)
113 | 114 | 115 | 116 |
117 |
118 |
Maximum Time / Message (ms/M)
119 | 120 | 121 | 122 |
123 |
124 |
Minimum Time / Message (ms/M)
125 | 126 | 127 | 128 |
129 |
130 | % endfor 131 | 132 |
133 |
139 | 140 | 141 |
142 | 143 | 144 | 145 | --------------------------------------------------------------------------------