Révision 3e01a9b3

b/papers/2014/kwapi/figs/architecture.svg
9 9
   xmlns="http://www.w3.org/2000/svg"
10 10
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
11 11
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12
   width="981.27307"
13
   height="704.6322"
12
   width="840.79169"
13
   height="614.01477"
14 14
   id="svg2"
15 15
   version="1.1"
16
   inkscape:version="0.48.3.1 r9886"
16
   inkscape:version="0.48.5 r10040"
17 17
   sodipodi:docname="architecture.svg">
18 18
  <defs
19 19
     id="defs4">
......
389 389
     borderopacity="1.0"
390 390
     inkscape:pageopacity="0.0"
391 391
     inkscape:pageshadow="2"
392
     inkscape:zoom="0.90987819"
393
     inkscape:cx="285.24471"
394
     inkscape:cy="388.47421"
392
     inkscape:zoom="0.8899128"
393
     inkscape:cx="286.7622"
394
     inkscape:cy="246.69316"
395 395
     inkscape:document-units="px"
396 396
     inkscape:current-layer="layer1"
397 397
     showgrid="false"
398
     inkscape:window-width="1680"
399
     inkscape:window-height="995"
400
     inkscape:window-x="0"
401
     inkscape:window-y="24"
398
     inkscape:window-width="1356"
399
     inkscape:window-height="724"
400
     inkscape:window-x="4"
401
     inkscape:window-y="0"
402 402
     inkscape:window-maximized="1"
403 403
     showguides="true"
404 404
     inkscape:guide-bbox="true"
405 405
     fit-margin-top="0"
406 406
     fit-margin-left="0"
407 407
     fit-margin-right="0"
408
     fit-margin-bottom="0">
409
    <sodipodi:guide
410
       orientation="0,1"
411
       position="1289.9444,638.86758"
412
       id="guide5849" />
413
    <sodipodi:guide
414
       orientation="1,0"
415
       position="-172.52607,579.27432"
416
       id="guide6248" />
417
  </sodipodi:namedview>
408
     fit-margin-bottom="0" />
418 409
  <metadata
419 410
     id="metadata7">
420 411
    <rdf:RDF>
......
431 422
     inkscape:label="Layer 1"
432 423
     inkscape:groupmode="layer"
433 424
     id="layer1"
434
     transform="translate(703.18851,-242.23962)">
425
     transform="translate(917.69967,-321.33582)">
426
    <path
427
       sodipodi:nodetypes="cccscc"
428
       inkscape:connector-curvature="0"
429
       id="path5056"
430
       d="m -296.83126,488.21384 20.80779,0 0,16.43173 c 0,0 -2.14659,3.41677 -10.41308,3.23694 -7.65912,-0.16662 -10.39471,-3.23694 -10.39471,-3.23694 z"
431
       style="fill:#aca793;fill-rule:evenodd;stroke:#000000;stroke-width:0.69999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
432
    <path
433
       transform="matrix(1.1164859,0,0,1,-771.04008,285.96387)"
434
       d="m 443.46016,202.51997 c 0,2.24198 -4.19901,4.05946 -9.37874,4.05946 -5.17973,0 -9.37873,-1.81748 -9.37873,-4.05946 0,-2.24197 4.199,-4.05945 9.37873,-4.05945 5.17973,0 9.37874,1.81748 9.37874,4.05945 z"
435
       sodipodi:ry="4.0594521"
436
       sodipodi:rx="9.3787346"
437
       sodipodi:cy="202.51997"
438
       sodipodi:cx="434.08142"
439
       id="path5058"
440
       style="fill:#aca793;fill-opacity:1;stroke:#000000;stroke-width:0.66247791;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
441
       sodipodi:type="arc" />
442
    <path
443
       sodipodi:nodetypes="cccscc"
444
       inkscape:connector-curvature="0"
445
       id="path5048"
446
       d="m -303.66479,491.81043 20.80779,0 0,16.43173 c 0,0 -2.14659,3.41677 -10.41308,3.23694 -7.65912,-0.16662 -10.39471,-3.23694 -10.39471,-3.23694 z"
447
       style="fill:#aca793;fill-rule:evenodd;stroke:#000000;stroke-width:0.69999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
448
    <path
449
       transform="matrix(1.1164859,0,0,1,-777.87361,289.56046)"
450
       d="m 443.46016,202.51997 c 0,2.24198 -4.19901,4.05946 -9.37874,4.05946 -5.17973,0 -9.37873,-1.81748 -9.37873,-4.05946 0,-2.24197 4.199,-4.05945 9.37873,-4.05945 5.17973,0 9.37874,1.81748 9.37874,4.05945 z"
451
       sodipodi:ry="4.0594521"
452
       sodipodi:rx="9.3787346"
453
       sodipodi:cy="202.51997"
454
       sodipodi:cx="434.08142"
455
       id="path5050"
456
       style="fill:#aca793;fill-opacity:1;stroke:#000000;stroke-width:0.66247791;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
457
       sodipodi:type="arc" />
435 458
    <path
436 459
       style="fill:none;stroke:#000000;stroke-width:1.40240312;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
437 460
       d="m -634.76069,704.65594 -0.27477,28.08112"
......
463 486
       inkscape:connector-curvature="0"
464 487
       sodipodi:nodetypes="cc" />
465 488
    <rect
466
       style="fill:#e9afaf;fill-rule:evenodd;stroke:#000000;stroke-width:0.96077007;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
489
       style="fill:#f4e3d7;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
467 490
       id="rect2985"
468
       width="280.32288"
469
       height="58.118099"
470
       x="-699.0011"
471
       y="308.00424" />
491
       width="286.67874"
492
       height="140.12581"
493
       x="-702.98944"
494
       y="322.08582" />
472 495
    <text
473 496
       xml:space="preserve"
474 497
       style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold"
475
       x="-552.92792"
476
       y="334.09198"
498
       x="-558.19836"
499
       y="346.01541"
477 500
       id="text2987"
478 501
       sodipodi:linespacing="125%"
479 502
       transform="scale(1.0064833,0.99355846)"><tspan
480 503
         sodipodi:role="line"
481
         id="tspan2989"
482
         x="-552.92792"
483
         y="334.09198">OpenStack</tspan><tspan
484
         sodipodi:role="line"
485
         x="-552.92792"
486
         y="354.09198"
487
         id="tspan2991">(Ceilometer, Nova)</tspan></text>
504
         x="-558.19836"
505
         y="346.01541"
506
         id="tspan2991">OpenStack</tspan></text>
488 507
    <rect
489
       style="fill:#ffeeaa;fill-rule:evenodd;stroke:#000000;stroke-width:1.66035008;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1.66035016, 1.66035016;stroke-dashoffset:0"
508
       style="fill:#ffeeaa;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
490 509
       id="rect2985-7-2-8"
491 510
       width="287.19916"
492 511
       height="101.80285"
......
505 524
         x="-555.27686"
506 525
         y="638.16699">Driver Layer (Data Producers)</tspan></text>
507 526
    <rect
508
       style="fill:#e9c6af;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
527
       style="fill:#e9c6af;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
509 528
       id="rect2985-7-2-7-5-7-8-57"
510 529
       width="127.38663"
511 530
       height="25.452873"
512 531
       x="-690.27826"
513 532
       y="681.56976" />
514 533
    <rect
515
       style="fill:#e3dedb;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
534
       style="fill:#e3dedb;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
516 535
       id="rect2985-7-2-7-5-7-9-2-5"
517 536
       width="128.81178"
518 537
       height="25.452873"
519 538
       x="-555.00568"
520 539
       y="647.59436" />
521 540
    <rect
522
       style="fill:#e3dbdb;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
541
       style="fill:#e3dbdb;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
523 542
       id="rect2985-7-2-7-5-7-0-2-2"
524 543
       width="127.80965"
525 544
       height="25.452873"
......
562 581
         x="-625.35559"
563 582
         y="670.66095">Serial</tspan></text>
564 583
    <rect
565
       style="fill:#c8beb7;fill-opacity:1;stroke:#000000;stroke-width:1.50821364;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
584
       style="fill:#c8beb7;fill-opacity:1;stroke:#000000;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
566 585
       id="rect3818-0"
567 586
       width="132.65846"
568 587
       height="167.47662"
......
607 626
         x="-629.63373"
608 627
         y="872.64288">VM</tspan></text>
609 628
    <rect
610
       style="fill:#e9c6af;fill-rule:evenodd;stroke:#000000;stroke-width:1.1091907;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
629
       style="fill:#e9c6af;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
611 630
       id="rect2985-7-2-7-5-7-8-53-8"
612 631
       width="55.146652"
613 632
       height="25.452873"
......
638 657
         x="-631.00433"
639 658
         y="785.05334">Server</tspan></text>
640 659
    <rect
641
       style="fill:#c8beb7;fill-opacity:1;stroke:#000000;stroke-width:1.50821364;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
660
       style="fill:#c8beb7;fill-opacity:1;stroke:#000000;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
642 661
       id="rect3818-3-7"
643 662
       width="132.65846"
644 663
       height="167.47662"
......
695 714
         x="-474.84082"
696 715
         y="784.96667">Server</tspan></text>
697 716
    <rect
698
       style="fill:#ffeeaa;fill-rule:evenodd;stroke:#000000;stroke-width:1.66035008;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1.66035016, 1.66035016;stroke-dashoffset:0"
717
       style="fill:#ffeeaa;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
699 718
       id="rect2985-7-2-1"
700 719
       width="287.19916"
701 720
       height="101.80285"
702 721
       x="-367.21988"
703 722
       y="613.0708" />
704 723
    <rect
705
       style="fill:#e3dedb;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
724
       style="fill:#e3dedb;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
706 725
       id="rect2985-7-2-7-5-7-8-4"
707 726
       width="127.38663"
708 727
       height="25.452873"
709 728
       x="-355.1398"
710 729
       y="681.50195" />
711 730
    <rect
712
       style="fill:#e9c6af;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
731
       style="fill:#e9c6af;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
713 732
       id="rect2985-7-2-7-5-7-9-2-3"
714 733
       width="128.81178"
715 734
       height="25.452873"
716 735
       x="-219.8672"
717 736
       y="647.52655" />
718 737
    <rect
719
       style="fill:#e3dbdb;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
738
       style="fill:#e3dbdb;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
720 739
       id="rect2985-7-2-7-5-7-0-2-0"
721 740
       width="127.80965"
722 741
       height="25.452873"
......
873 892
         x="-144.51529"
874 893
         y="803.25293">Server</tspan></text>
875 894
    <rect
876
       style="fill:#ffccaa;fill-rule:evenodd;stroke:#000000;stroke-width:1.50000000000000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
895
       style="fill:#ffccaa;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
877 896
       id="rect2985-7-2-7-9"
878 897
       width="289.68521"
879 898
       height="34.983727"
......
893 912
         y="753.48932">Power Distribution Unit</tspan></text>
894 913
    <path
895 914
       style="fill:none;stroke:#000000;stroke-width:1.42516136;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.87280704;stroke-dasharray:1.42516146, 2.85032292;stroke-dashoffset:0;marker-start:none"
896
       d="m -391.82748,560.83653 1.97696,376.43843"
915
       d="m -391.82748,560.83653 1.97696,372.84801"
897 916
       id="path4076-8"
898 917
       inkscape:connector-curvature="0"
899 918
       sodipodi:nodetypes="cc" />
......
922 941
         x="-222.89473"
923 942
         y="941.18817">Data Centre 2</tspan></text>
924 943
    <rect
925
       style="fill:#f4d7d7;fill-rule:evenodd;stroke:#000000;stroke-width:1.49086344;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1.49086345, 1.49086345;stroke-dashoffset:0"
944
       style="fill:#f4d7d7;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
926 945
       id="rect2985-7-2-7"
927 946
       width="622.11853"
928 947
       height="43.322418"
......
978 997
         id="tspan3020-6-0-7-84-8-6"
979 998
         x="-599.2793"
980 999
         y="587.14392">Forwarders</tspan></text>
1000
    <text
1001
       xml:space="preserve"
1002
       style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
1003
       x="-337.48538"
1004
       y="435.91672"
1005
       id="text2987-6-1-3-2-3"
1006
       sodipodi:linespacing="125%"
1007
       transform="scale(1.0064833,0.99355846)"><tspan
1008
         sodipodi:role="line"
1009
         x="-337.48538"
1010
         y="435.91672"
1011
         id="tspan6246-3">Web pages</tspan><tspan
1012
         sodipodi:role="line"
1013
         x="-337.48538"
1014
         y="453.41672"
1015
         id="tspan6324">and RRD files</tspan></text>
1016
    <text
1017
       xml:space="preserve"
1018
       style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:end;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
1019
       x="-714.70996"
1020
       y="474.74405"
1021
       id="text2987-6-1-3-2-3-4-0-0-6"
1022
       sodipodi:linespacing="125%"
1023
       transform="scale(1.0064833,0.99355846)"><tspan
1024
         sodipodi:role="line"
1025
         x="-714.70996"
1026
         y="474.74405"
1027
         id="tspan6324-6-3-1-8">Cumulative and</tspan><tspan
1028
         sodipodi:role="line"
1029
         x="-714.70996"
1030
         y="492.24405"
1031
         id="tspan6450">gauge data</tspan></text>
981 1032
    <rect
982
       style="fill:#ffeeaa;fill-rule:evenodd;stroke:#000000;stroke-width:1.40122592;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1.40122604, 1.40122604;stroke-dashoffset:0"
983
       id="rect2985-7-2-8-9"
984
       width="151.814"
985
       height="137.16656"
986
       x="-569.83044"
987
       y="391.28848" />
1033
       style="fill:#e9c6af;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
1034
       id="rect2985-7-2-7-5-7-8-53-8-0"
1035
       width="55.146652"
1036
       height="25.452873"
1037
       x="-479.07977"
1038
       y="734.66815" />
1039
    <text
1040
       xml:space="preserve"
1041
       style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold"
1042
       x="-449.5412"
1043
       y="758.12036"
1044
       id="text2987-6-1-5-0-7-6"
1045
       sodipodi:linespacing="125%"
1046
       transform="scale(1.0064833,0.99355846)"><tspan
1047
         sodipodi:role="line"
1048
         id="tspan3020-6-0-79-65-6"
1049
         x="-449.5412"
1050
         y="758.12036">IPMI</tspan></text>
988 1051
    <text
989 1052
       xml:space="preserve"
990 1053
       style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold"
991
       x="-515.41791"
992
       y="417.46799"
993
       id="text2987-6-1-3-8"
1054
       x="-220.75206"
1055
       y="637.44946"
1056
       id="text2987-6-1-3-1"
994 1057
       sodipodi:linespacing="125%"
995 1058
       transform="scale(1.0064833,0.99355846)"><tspan
996 1059
         sodipodi:role="line"
997
         id="tspan3020-6-4-1"
998
         x="-515.41791"
999
         y="417.46799">Plug-ins</tspan></text>
1060
         id="tspan3020-6-4-7"
1061
         x="-220.75206"
1062
         y="637.44946">Driver Layer (Data Producers)</tspan></text>
1063
    <rect
1064
       y="475.43796"
1065
       x="-703.20532"
1066
       height="65.118721"
1067
       width="287.19916"
1068
       id="rect3230"
1069
       style="fill:#e3dedb;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
1070
    <text
1071
       transform="scale(1.0064833,0.99355846)"
1072
       sodipodi:linespacing="125%"
1073
       id="text3232"
1074
       y="498.42194"
1075
       x="-557.42621"
1076
       style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold"
1077
       xml:space="preserve"><tspan
1078
         y="498.42194"
1079
         x="-557.42621"
1080
         id="tspan3234"
1081
         sodipodi:role="line">Data Consumers</tspan></text>
1000 1082
    <rect
1001 1083
       style="fill:#e9c6af;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
1002 1084
       id="rect2985-7-2-7-5-7-8-57-3"
1003 1085
       width="127.38663"
1004 1086
       height="25.452873"
1005
       x="-555.42316"
1006
       y="493.08337" />
1007
    <rect
1008
       style="fill:#e9c6af;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
1009
       id="rect2985-7-2-7-5-7-9-2-5-7"
1010
       width="128.81178"
1011
       height="25.452873"
1012
       x="-555.96997"
1013
       y="427.51959" />
1014
    <rect
1015
       style="fill:#e9c6af;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
1016
       id="rect2985-7-2-7-5-7-0-2-2-9"
1017
       width="127.80965"
1018
       height="25.452873"
1019
       x="-555.6225"
1020
       y="460.37628" />
1087
       x="-552.97302"
1088
       y="505.5368" />
1021 1089
    <text
1022 1090
       xml:space="preserve"
1023 1091
       style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold"
1024
       x="-487.51575"
1025
       y="514.396"
1092
       x="-485.08139"
1093
       y="526.93018"
1026 1094
       id="text2987-6-1-5-8-2"
1027 1095
       sodipodi:linespacing="125%"
1028 1096
       transform="scale(1.0064833,0.99355846)"><tspan
1029 1097
         sodipodi:role="line"
1030 1098
         id="tspan3020-6-0-9-9"
1031
         x="-487.51575"
1032
         y="514.396">Visualisation</tspan></text>
1099
         x="-485.08139"
1100
         y="526.93018">Visualisation</tspan></text>
1101
    <rect
1102
       style="fill:#e9c6af;fill-rule:evenodd;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
1103
       id="rect2985-7-2-7-5-7-9-2-5-7"
1104
       width="128.81178"
1105
       height="25.452873"
1106
       x="-691.22992"
1107
       y="505.25778" />
1033 1108
    <text
1034 1109
       xml:space="preserve"
1035 1110
       style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold"
1036
       x="-488.34146"
1037
       y="449.42993"
1111
       x="-622.7301"
1112
       y="527.67212"
1038 1113
       id="text2987-6-1-5-1-7-1"
1039 1114
       sodipodi:linespacing="125%"
1040 1115
       transform="scale(1.0064833,0.99355846)"><tspan
1041 1116
         sodipodi:role="line"
1042 1117
         id="tspan3020-6-0-7-1-9"
1043
         x="-488.34146"
1044
         y="449.42993">REST API</tspan></text>
1118
         x="-622.7301"
1119
         y="527.67212">REST API</tspan></text>
1120
    <rect
1121
       style="fill:#e3dedb;fill-rule:evenodd;stroke:#000000;stroke-width:1.52549064;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
1122
       id="rect4212"
1123
       width="174.30615"
1124
       height="97.113991"
1125
       x="-699.84058"
1126
       y="356.97177" />
1127
    <text
1128
       transform="scale(1.0064833,0.99355846)"
1129
       sodipodi:linespacing="125%"
1130
       id="text4214"
1131
       y="380.21686"
1132
       x="-609.20306"
1133
       style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold"
1134
       xml:space="preserve"><tspan
1135
         id="tspan4218"
1136
         y="380.21686"
1137
         x="-609.20306"
1138
         sodipodi:role="line">Ceilometer</tspan></text>
1139
    <rect
1140
       y="420.54715"
1141
       x="-691.888"
1142
       height="25.452873"
1143
       width="159.13974"
1144
       id="rect4200"
1145
       style="fill:#e9c6af;fill-rule:evenodd;stroke:#000000;stroke-width:1.53157818;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
1146
    <text
1147
       transform="scale(1.0064833,0.99355846)"
1148
       sodipodi:linespacing="125%"
1149
       id="text4202"
1150
       y="441.08746"
1151
       x="-608.94733"
1152
       style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold"
1153
       xml:space="preserve"><tspan
1154
         y="441.08746"
1155
         x="-608.94733"
1156
         id="tspan4204"
1157
         sodipodi:role="line">KWAPI Pollster</tspan></text>
1158
    <rect
1159
       style="fill:#e9c6af;fill-rule:evenodd;stroke:#000000;stroke-width:1.53157818;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
1160
       id="rect4206"
1161
       width="159.13974"
1162
       height="25.452873"
1163
       x="-691.888"
1164
       y="386.98172" />
1045 1165
    <text
1046 1166
       xml:space="preserve"
1047 1167
       style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold"
1048
       x="-491.36914"
1049
       y="481.79767"
1050
       id="text2987-6-1-5-1-8-7-4"
1168
       x="-608.94727"
1169
       y="407.96686"
1170
       id="text4208"
1051 1171
       sodipodi:linespacing="125%"
1052 1172
       transform="scale(1.0064833,0.99355846)"><tspan
1053 1173
         sodipodi:role="line"
1054
         id="tspan3020-6-0-7-3-8-8"
1055
         x="-491.36914"
1056
         y="481.79767">Ceilometer</tspan></text>
1057
    <path
1058
       style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#TriangleInM);marker-mid:none;marker-end:none"
1059
       d="m -565.96667,439.17796 c -21.95284,-33.53585 -46.21966,21.03719 -77.3607,-7.03571"
1060
       id="path3963-1-7-4-1-1"
1061
       inkscape:connector-curvature="0"
1062
       sodipodi:nodetypes="cc" />
1174
         id="tspan4210"
1175
         x="-608.94727"
1176
         y="407.96686">Central Agent</tspan></text>
1177
    <rect
1178
       y="356.97177"
1179
       x="-517.565"
1180
       height="97.113991"
1181
       width="93.514626"
1182
       id="rect4224"
1183
       style="fill:#e3dedb;fill-rule:evenodd;stroke:#000000;stroke-width:1.4406265;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
1063 1184
    <text
1064 1185
       xml:space="preserve"
1065
       style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
1066
       x="-650.95056"
1067
       y="412.83884"
1068
       id="text2987-6-1-3-2"
1186
       style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold"
1187
       x="-466.82901"
1188
       y="410.68784"
1189
       id="text4226"
1069 1190
       sodipodi:linespacing="125%"
1070 1191
       transform="scale(1.0064833,0.99355846)"><tspan
1071 1192
         sodipodi:role="line"
1072
         id="tspan3020-6-4-8"
1073
         x="-650.95056"
1074
         y="412.83884">Client</tspan><tspan
1075
         sodipodi:role="line"
1076
         x="-650.95056"
1077
         y="430.33884"
1078
         id="tspan6246">application</tspan></text>
1193
         x="-466.82901"
1194
         y="410.68784"
1195
         id="tspan4228">Nova</tspan></text>
1079 1196
    <path
1080 1197
       style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#TriangleInM);marker-mid:none;marker-end:none"
1081
       d="m -638.9306,495.6407 c 20.72766,34.30662 46.94909,-19.35465 77.05622,9.82432"
1198
       d="m -345.48289,516.78653 c -20.72766,34.30662 -46.94909,-19.35465 -77.05622,9.82432"
1082 1199
       id="path3963-1-7-4-1-1-9"
1083 1200
       inkscape:connector-curvature="0"
1084 1201
       sodipodi:nodetypes="cc" />
1202
    <path
1203
       style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#TriangleInM);marker-mid:none;marker-end:url(#TriangleOutM-09)"
1204
       d="m -684.88912,514.40952 c -40.40048,-12.87843 -36.2198,-66.67952 -2.54721,-74.57754"
1205
       id="path3963-1-7-4-1-1-4"
1206
       inkscape:connector-curvature="0"
1207
       sodipodi:nodetypes="cc" />
1208
    <text
1209
       transform="scale(1.0064833,0.99355846)"
1210
       sodipodi:linespacing="125%"
1211
       id="text4977"
1212
       y="699.71625"
1213
       x="-154.05363"
1214
       style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold"
1215
       xml:space="preserve"><tspan
1216
         y="699.71625"
1217
         x="-154.05363"
1218
         id="tspan4979"
1219
         sodipodi:role="line">...</tspan></text>
1085 1220
    <text
1086 1221
       xml:space="preserve"
1087
       style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
1088
       x="-644.24066"
1089
       y="470.81839"
1090
       id="text2987-6-1-3-2-3"
1222
       style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold"
1223
       x="-483.9158"
1224
       y="699.71625"
1225
       id="text4981"
1091 1226
       sodipodi:linespacing="125%"
1092 1227
       transform="scale(1.0064833,0.99355846)"><tspan
1093 1228
         sodipodi:role="line"
1094
         x="-644.24066"
1095
         y="470.81839"
1096
         id="tspan6246-3">Web pages</tspan><tspan
1097
         sodipodi:role="line"
1098
         x="-644.24066"
1099
         y="488.31839"
1100
         id="tspan6324">and RRD files</tspan></text>
1229
         id="tspan4983"
1230
         x="-483.9158"
1231
         y="699.71625">...</tspan></text>
1232
    <rect
1233
       style="fill:#e3dedb;fill-rule:evenodd;stroke:#000000;stroke-width:0.38096794;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
1234
       id="rect4987"
1235
       width="81.86882"
1236
       height="50.623055"
1237
       x="-385.55289"
1238
       y="456.64575" />
1239
    <rect
1240
       y="456.64575"
1241
       x="-385.55289"
1242
       height="3.7141297"
1243
       width="81.86882"
1244
       id="rect4989"
1245
       style="fill:#006680;fill-rule:evenodd;stroke:#000000;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
1246
    <rect
1247
       style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
1248
       id="rect4991"
1249
       width="3.4813902"
1250
       height="3.7141297"
1251
       x="-307.16544"
1252
       y="456.64575" />
1253
    <path
1254
       style="fill:none;stroke:#000000;stroke-width:0.40000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
1255
       d="m -306.56221,457.38502 2.20054,2.34171"
1256
       id="path4993"
1257
       inkscape:connector-curvature="0" />
1258
    <path
1259
       inkscape:connector-curvature="0"
1260
       id="path4995"
1261
       d="m -304.36167,457.38502 -2.20054,2.34171"
1262
       style="fill:none;stroke:#000000;stroke-width:0.40000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
1263
    <rect
1264
       y="464.23187"
1265
       x="-381.92239"
1266
       height="18.199507"
1267
       width="75.170746"
1268
       id="rect4997"
1269
       style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
1270
    <path
1271
       style="fill:none;stroke:#006400;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1"
1272
       d="m -378.77311,475.51646 c 0.29431,-0.29432 0.58863,-0.58863 0.88294,-0.88295 0.0589,0 0.12762,0.0327 0.17659,0 0.13853,-0.0924 0.23546,-0.23545 0.35318,-0.35317 0.0589,-0.0589 0.0933,-0.17659 0.17659,-0.17659 0.25983,0 0.17659,0.4608 0.17659,0.52976 0,0.11601 -0.0208,0.66484 0,0.70636 0.0263,0.0526 0.11772,0 0.17659,0 0.2311,0 0.68378,0.0398 0.88294,0 0.44148,-0.0883 0.8391,-0.33125 1.23612,-0.52977 0.11773,-0.0589 0.26011,-0.0835 0.35318,-0.17659 0.10554,-0.10553 -0.19087,-0.35317 0.17659,-0.35317 0.0589,0 0,0.11772 0,0.17659 0,0.17658 0,0.35317 0,0.52976 0,0.0589 0.0589,0.17659 0,0.17659 -0.0589,0 -0.0589,-0.17659 0,-0.17659 0.0833,0 0.10213,0.13936 0.17659,0.17659 0.0526,0.0263 0.11773,0 0.17659,0 0.17659,0 0.35845,0.0428 0.52977,0 0.12769,-0.0319 0.22831,-0.13496 0.35317,-0.17659 0.0559,-0.0186 0.12394,0.0263 0.17659,0 0.35715,-0.17857 0.0566,-0.4098 0.17659,-0.52976 0.0931,-0.0931 0.24366,-0.10358 0.35318,-0.17659 0.0693,-0.0462 0.11772,-0.11773 0.17659,-0.17659 0.0589,-0.0589 0.13936,-0.10213 0.17659,-0.17659 0.0263,-0.0526 -0.0416,-0.13497 0,-0.17659 0.0416,-0.0416 0.11772,0 0.17659,0 0.72539,0 -0.021,-0.0832 0.70635,0.35318 0.15962,0.0958 0.34918,0.13144 0.52977,0.17659 0.0571,0.0143 0.15026,0.0526 0.17659,0 0.0526,-0.1053 0,-0.23545 0,-0.35318 0,-0.0589 -0.0589,-0.17659 0,-0.17659 0.0589,0 -0.0589,0.17659 0,0.17659 0.17806,0 0.12173,-0.33089 0.35317,-0.17659 0.13853,0.0923 0.25329,0.21999 0.35318,0.35318 0.079,0.1053 0.0671,0.28017 0.17659,0.35318 0.098,0.0653 0.24788,-0.0526 0.35318,0 0.0527,0.0263 0.0589,0.17658 0,0.17658 -0.0589,0 -0.0589,-0.17658 0,-0.17658 0.13162,0 0.22155,0.17658 0.35318,0.17658 0.0341,0 0.26743,-0.29601 0.35317,-0.35317 0.10952,-0.073 0.22831,-0.13497 0.35318,-0.17659 0.0558,-0.0186 0.17659,-0.0589 0.17659,0 0,0.0589 -0.17659,-0.0589 -0.17659,0 0,0.13469 0.5285,0.35275 0.52977,0.35318 0.0558,0.0186 0.11772,0 0.17659,0 0.0589,0 0.12074,0.0186 0.17659,0 0.12486,-0.0416 0.22155,-0.17659 0.35317,-0.17659 0.0832,0 0.10214,0.13936 0.17659,0.17659 0.1053,0.0526 0.35318,-0.11773 0.35318,0 0,0.0589 -0.23545,0 -0.17659,0 0.11773,0 0.24788,0.0526 0.35318,0 0.0526,-0.0263 0,-0.11773 0,-0.17659 0,-0.27977 -0.0527,-0.47712 0.17659,-0.70636 0.11772,-0.11772 0.33594,0.12487 0.35318,0.17659 0.0372,0.11169 -0.0527,0.24788 0,0.35318 0.0263,0.0526 0.12074,-0.0186 0.17658,0 0.12487,0.0416 0.24367,0.10358 0.35318,0.17659 0.0693,0.0462 0.0976,0.15026 0.17659,0.17659 0.11169,0.0372 0.23545,0 0.35318,0 0.11772,0 0.24149,0.0372 0.35318,0 0.11957,-0.0399 0.39487,-0.46232 0.52976,-0.52977 0.0526,-0.0263 0.13497,0.0416 0.17659,0 0.0416,-0.0416 -0.0263,-0.12394 0,-0.17659 0.0372,-0.0745 0.11773,-0.11773 0.17659,-0.17659 0.0589,-0.0589 0.11773,-0.11772 0.17659,-0.17659 0.0589,-0.0589 0.0933,-0.17659 0.17659,-0.17659 0.0589,0 -0.0186,0.12075 0,0.17659 0.0416,0.12487 0.13497,0.22831 0.17659,0.35318 0.0731,0.21922 -0.14497,0.1924 0.17659,0.35318 0.0527,0.0263 0.17659,-0.0589 0.17659,0 0,0.0907 -0.91842,-0.17659 0.17658,-0.17659 0.0833,0 0.23546,0.11773 0.17659,0.17659 -0.16678,0.16678 -0.49052,-1.15764 0.17659,0.17659 0.0527,0.10529 -0.0526,0.24788 0,0.35317 0.0263,0.0526 0.11773,0 0.17659,0 0.11773,0 0.25522,0.0653 0.35318,0 0.21903,-0.14602 0.16704,-0.52021 0.35318,-0.70635 0.0582,-0.0582 0.57856,0.0426 0.70635,0 0.079,-0.0263 0.11773,-0.23545 0.17659,-0.17659 0.0589,0.0589 -0.25983,0.17659 -0.17659,0.17659 0.13162,0 0.22831,-0.13497 0.35318,-0.17659 0.0558,-0.0186 0.13497,0.0416 0.17659,0 0.11772,-0.11772 -0.11772,-0.23546 0,-0.35318 0.0416,-0.0416 0.17659,-0.0589 0.17659,0 0,0.0832 -0.25984,0.17659 -0.17659,0.17659 0.13162,0 0.22155,-0.17659 0.35318,-0.17659 0.89209,0 0.13571,0.13572 0.35317,0.35318 0.0416,0.0416 0.11773,0 0.17659,0 0.0673,0 0.86581,0.0171 0.88295,0 0.54202,-0.54202 -0.10318,-0.14683 0.17659,-0.70635 0.0263,-0.0526 0.15026,0.0526 0.17658,0 0.1053,-0.2106 -0.0745,-0.48299 0,-0.70636 0.0263,-0.079 0.11773,-0.11773 0.17659,-0.17659 0.56843,-0.56843 -0.25983,0.34308 0.17659,-0.52977 0.0263,-0.0526 0.12075,0.0186 0.17659,0 0.12487,-0.0416 0.22831,-0.13496 0.35318,-0.17658 0.0558,-0.0186 0.12075,0.0186 0.17659,0 0.64018,-0.2134 0.12568,-0.0838 0.52976,-0.35318 0.11773,-0.0589 0.23546,-0.11773 0.35318,-0.17659 0,-0.0589 -0.0416,-0.13497 0,-0.17659 0.0416,-0.0416 0.17659,-0.0589 0.17659,0 0,0.0589 -0.17659,-0.0589 -0.17659,0 0,0.13162 0.13497,0.22831 0.17659,0.35318 0.0186,0.0558 -0.0186,0.12074 0,0.17659 0.0416,0.12486 0.14467,0.22548 0.17659,0.35317 0.0285,0.11422 -0.0285,0.23897 0,0.35318 0.0319,0.12769 0.15078,0.22411 0.17659,0.35318 0.0462,0.23088 0,0.4709 0,0.70636 0,0.0589 -0.0416,0.13496 0,0.17658 0.11765,0.11765 0.23553,-0.11764 0.35318,0 0.0416,0.0416 -0.0416,0.13497 0,0.17659 0.0416,0.0416 0.11772,0 0.17659,0 0.0589,0 0.11772,0 0.17658,0 0.34184,0 0.96687,0.0927 1.23613,-0.17659 1.7e-4,-1.6e-4 -2.7e-4,-0.52896 0,-0.52976 0.0263,-0.079 0.11772,-0.11773 0.17659,-0.17659 0.0589,-0.0589 0.11772,-0.23545 0.17658,-0.17659 0.0589,0.0589 -0.25983,0.17659 -0.17658,0.17659 0.13162,0 0.22155,-0.17659 0.35317,-0.17659 0.0589,0 -0.0186,0.12075 0,0.17659 0.0416,0.12487 0.10358,0.24366 0.17659,0.35318 0.0462,0.0693 0.13936,0.10213 0.17659,0.17659 0.0263,0.0526 -0.0263,0.12394 0,0.17658 0.0372,0.0745 0.11773,0.11773 0.17659,0.17659 0.0712,0.0712 0.19728,0.28053 0.35318,0.17659 0.13853,-0.0924 0.21465,-0.26082 0.35318,-0.35318 0.049,-0.0326 0.13496,0.0416 0.17658,0 0.4338,-0.063 0.0733,-0.37488 0.17659,-0.52976 0.0924,-0.13853 0.26083,-0.21465 0.35318,-0.35318 0.0326,-0.049 0,-0.11773 0,-0.17659 0.11773,-0.0589 0.24366,-0.10358 0.35318,-0.17659 0.0693,-0.0462 0.13936,-0.10213 0.17659,-0.17659 0.0765,-0.15304 -0.21191,-0.45913 0.35318,-0.17659 0.0526,0.0263 -0.0186,0.12075 0,0.17659 0.0416,0.12487 0.11772,0.23545 0.17658,0.35318 0.50025,1.0005 -0.0658,-0.26324 0.17659,0.70636 0.0319,0.12769 0.13497,0.22831 0.17659,0.35317 0.0186,0.0558 -0.0263,0.12394 0,0.17659 0.0808,0.16164 0.40072,0.31016 0.52977,0.35318 0.1631,0.0544 0.44842,-0.0952 0.52977,-0.17659 0.0931,-0.0931 0.0671,-0.28017 0.17658,-0.35318 0.098,-0.0653 0.26994,0.0832 0.35318,0 0.0883,-0.0883 -0.0442,-0.39732 0,-0.52976 0.0416,-0.12487 0.11773,-0.23545 0.17659,-0.35318 0.0589,-0.11773 0.13497,-0.22831 0.17659,-0.35318 0.0186,-0.0558 -0.0263,-0.12394 0,-0.17659 0.10513,-0.21025 0.35318,-0.24642 0.35318,-0.17659 0,0.0589 -0.17659,-0.0589 -0.17659,0 0,0.0833 0.15026,0.0976 0.17659,0.17659 0.0372,0.11169 -0.0286,0.23897 0,0.35318 0.0319,0.12769 0.13496,0.22831 0.17659,0.35318 0.0186,0.0558 -0.0416,0.13496 0,0.17659 0.0416,0.0416 0.13496,-0.0416 0.17659,0 0.23545,0.23545 -0.37461,0.16944 0.17658,0.35318 0.11169,0.0372 0.23546,0 0.35318,0 0.11773,0 0.23545,0 0.35318,0 0.4709,0 0.94181,0 1.41271,0 0.17659,0 0.37182,-0.079 0.52977,0 0.30477,0.15238 -0.62885,0.55134 -0.35318,0 0.0946,-0.18922 0.47073,0.33841 0.52977,0.35317 0.20636,0.0516 1.04904,-0.0624 1.23612,0 0.65463,0.21821 -0.21526,0.17659 0.35318,0.17659 0.17658,0 0.35317,0 0.52976,0 0.0589,0 0.23545,0 0.17659,0 -0.11772,0 -0.4709,0 -0.35318,0 0.17659,0 0.35318,0 0.52977,0 0.11773,0 0.24149,0.0372 0.35318,0 0.12486,-0.0416 0.22155,-0.17659 0.35318,-0.17659 0.0832,0 0.0976,0.15027 0.17658,0.17659 0.11169,0.0372 0.23546,0 0.35318,0 0.0589,0 0.13497,0.0416 0.17659,0 0.0416,-0.0416 -0.0416,-0.13496 0,-0.17659 0.0416,-0.0416 0.12394,0.0263 0.17659,0 0.14891,-0.0745 0.20426,-0.27872 0.35318,-0.35317 0.33009,-0.16505 0.0131,0.18315 0.35318,0.35317 0.0435,0.0217 0.84447,0.0128 0.88294,0 0.079,-0.0263 0.0976,-0.15026 0.17659,-0.17659 0.11168,-0.0372 0.25522,0.0653 0.35318,0 1.20103,-0.80069 -1.11814,0.1176 0.52976,-0.70635 0.59044,-0.29522 0.25538,0.33416 0.35318,0.52977 0.0263,0.0526 0.12075,-0.0186 0.17659,0 0.17821,0.0594 0.42795,0.2784 0.52977,0.17658 0.20811,-0.20811 0.34591,-0.47653 0.52976,-0.70635 0.052,-0.065 0.13936,-0.10213 0.17659,-0.17659 0.0263,-0.0526 -0.0186,-0.12075 0,-0.17659 0.0416,-0.12487 0.11773,-0.23545 0.17659,-0.35318 0.0589,-0.11772 0.0835,-0.2601 0.17659,-0.35317 0.0931,-0.0931 0.22831,-0.21822 0.35318,-0.17659 0.12486,0.0416 0.10358,0.24366 0.17659,0.35317 0.0462,0.0693 0.15026,0.0976 0.17658,0.17659 0.0372,0.11169 -0.0526,0.24788 0,0.35318 0.0745,0.14891 0.26752,0.21041 0.35318,0.35318 0.0958,0.15961 0.0934,0.36328 0.17659,0.52977 0.13523,0.27045 0.31469,0.13809 0.52977,0.35317 0.0416,0.0416 -0.0416,0.13497 0,0.17659 0.0416,0.0416 0.11772,0 0.17659,0 0.11772,0 0.23896,0.0285 0.35317,0 0.063,-0.0158 1.02477,-0.495 1.05954,-0.52976 0.0416,-0.0416 -0.0416,-0.13497 0,-0.17659 0.1543,-0.1543 0.74502,-0.28422 0.88294,-0.35318 0.18983,-0.0949 0.34778,-0.24399 0.52977,-0.35318 0.11286,-0.0677 0.28017,-0.0671 0.35318,-0.17659 0.0653,-0.0979 -0.0526,-0.24788 0,-0.35318 0.0263,-0.0526 0.12394,0.0263 0.17659,0 0.0744,-0.0372 0.10213,-0.13936 0.17658,-0.17658 0.14615,-0.0731 0.29575,0.0617 0.35318,0.17658 0.0263,0.0526 -0.0263,0.12394 0,0.17659 0.0372,0.0745 0.13936,0.10214 0.17659,0.17659 0.0263,0.0526 -0.0416,0.13497 0,0.17659 0.0416,0.0416 0.11773,0 0.17659,0 0.0589,0 0.12394,0.0263 0.17659,0 0.15386,-0.0769 0.32245,-0.40686 0.35318,-0.52977 0.0286,-0.11421 -0.0231,-0.23773 0,-0.35317 0.0365,-0.18253 0.14008,-0.34724 0.17659,-0.52977 0.0231,-0.11544 -0.0833,-0.26993 0,-0.35318 0.0832,-0.0832 0.25522,-0.0653 0.35317,0 0.10952,0.073 0.0976,0.24788 0.17659,0.35318 0.76657,1.02209 0.11973,-0.22744 0.35318,0.70636 0.0857,0.34282 0.40317,0.56644 0.52977,0.88294 0.0437,0.10931 -0.0527,0.24788 0,0.35318 0.0263,0.0526 0.12394,-0.0263 0.17659,0 0.0745,0.0372 0.13936,0.10213 0.17658,0.17659 0.21747,0.43493 -0.51259,-0.15942 0.17659,0.52976 0.0416,0.0416 0.11773,0 0.17659,0 0.0589,0 0.12761,0.0326 0.17659,0 0.13853,-0.0924 0.21041,-0.26752 0.35318,-0.35317 0.15961,-0.0958 0.38085,-0.0649 0.52977,-0.17659 0.0168,-0.0126 0.31388,-0.64742 0.35317,-0.70636 0.27046,-0.40569 0.10087,0.0757 0.52977,-0.35318 0.0931,-0.0931 0.10358,-0.24366 0.17659,-0.35317 0.23665,-0.35498 0.12613,-0.042 0.52977,-0.17659 0.079,-0.0263 0.10213,-0.21382 0.17658,-0.17659 0.32912,0.16456 0.12212,1.01822 0.17659,1.23612 0.0404,0.16152 0.30053,0.19523 0.35318,0.35318 0.0372,0.11168 -0.0526,0.24788 0,0.35318 0.0263,0.0526 0.12394,-0.0263 0.17659,0 0.80818,0.40408 -0.74934,-0.0732 0.52977,0.35317 0.11168,0.0372 0.23545,0 0.35317,0 0.11773,0 0.23897,0.0286 0.35318,0 0.12769,-0.0319 0.26011,-0.0835 0.35318,-0.17659 0.0931,-0.0931 0.10358,-0.24366 0.17659,-0.35317 0.0462,-0.0693 0.13041,-0.10733 0.17659,-0.17659 0.073,-0.10952 0.0835,-0.26011 0.17659,-0.35318 0.0416,-0.0416 0.13496,0.0416 0.17658,0 0.0833,-0.0833 -0.0979,-0.28788 0,-0.35318 0.15488,-0.10325 0.36328,-0.0933 0.52977,-0.17659 0.80818,-0.40409 -0.74934,0.0732 0.52977,-0.35317 0.15658,-0.0522 0.28098,0.0322 0.35318,0.17658 0.0263,0.0526 -0.0416,0.13497 0,0.17659 0.0416,0.0416 0.12761,-0.0326 0.17658,0 0.13853,0.0924 0.21465,0.26083 0.35318,0.35318 0.0813,0.0542 0.65533,-0.051 0.70636,0 0.0931,0.0931 0.0835,0.26011 0.17659,0.35318 0.0931,0.0931 0.22831,0.13496 0.35317,0.17659 0.0559,0.0186 0.15027,-0.0526 0.17659,0 0.11487,0.22974 -0.16447,0.41608 0.17659,0.52976 0.20982,0.0699 0.55532,-0.0255 0.70636,-0.17658 0.0931,-0.0931 0.0835,-0.26011 0.17659,-0.35318 0.0416,-0.0416 0.12074,0.0186 0.17659,0 0.12486,-0.0416 0.22831,-0.13497 0.35317,-0.17659 0.35318,-0.11773 0.0589,0.0589 0.17659,0.17659 0.0416,0.0416 0.11773,0 0.17659,0 0.14951,0 0.61142,0.0316 0.70636,0 0.15794,-0.0526 0.19523,-0.30053 0.35317,-0.35318 0.11169,-0.0372 0.24788,0.0526 0.35318,0 0.12475,-0.0624 0.65564,-0.70636 0.70636,-0.70636 0.30982,0 0.11571,0.40801 0.17659,0.52977 0.0372,0.0745 0.23545,0.11773 0.17659,0.17659 -0.0589,0.0589 -0.25984,-0.17659 -0.17659,-0.17659 0.13162,0 0.22155,0.17659 0.35317,0.17659 0.0569,0 0.25506,-0.30412 0.35318,-0.35318 0.11141,-0.0557 0.77154,0.0557 0.88295,0 0.0745,-0.0372 0.11772,-0.11772 0.17659,-0.17659 0.0589,-0.0589 0.11772,-0.11772 0.17658,-0.17659"
1273
       id="path5003"
1274
       inkscape:connector-curvature="0" />
1275
    <path
1276
       style="fill:none;stroke:#000000;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
1277
       d="m -379.12629,466.51043 0,14.3037"
1278
       id="path4999"
1279
       inkscape:connector-curvature="0"
1280
       sodipodi:nodetypes="cc" />
1281
    <path
1282
       sodipodi:nodetypes="cc"
1283
       inkscape:connector-curvature="0"
1284
       id="path5001"
1285
       d="m -308.9439,480.41422 -70.28237,0.17659"
1286
       style="fill:none;stroke:#000000;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
1287
    <rect
1288
       style="fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:0.28362069;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
1289
       id="rect5007"
1290
       width="37.792416"
1291
       height="18.199507"
1292
       x="-381.92239"
1293
       y="485.37701" />
1294
    <rect
1295
       style="fill:#008000;fill-opacity:0.38051596;stroke:#000000;stroke-width:0.40000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
1296
       id="rect5005"
1297
       width="4.060472"
1298
       height="9.6075497"
1299
       x="-376.79059"
1300
       y="491.80725" />
1301
    <path
1302
       sodipodi:nodetypes="cc"
1303
       inkscape:connector-curvature="0"
1304
       id="path5009"
1305
       d="m -379.89242,487.34913 0,14.3037"
1306
       style="fill:none;stroke:#000000;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
1307
    <rect
1308
       y="488.84442"
1309
       x="-372.04059"
1310
       height="12.565613"
1311
       width="4.060472"
1312
       id="rect5013"
1313
       style="fill:#ff0000;fill-opacity:0.38051596;stroke:#000000;stroke-width:0.457452;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
1314
    <rect
1315
       style="fill:#000080;fill-opacity:0.38051596;stroke:#000000;stroke-width:0.37194505;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
1316
       id="rect5015"
1317
       width="4.060472"
1318
       height="8.3071146"
1319
       x="-367.29059"
1320
       y="493.10767" />
1321
    <rect
1322
       y="490.46533"
1323
       x="-362.53583"
1324
       height="10.944699"
1325
       width="4.060472"
1326
       id="rect5017"
1327
       style="fill:#ffff00;fill-opacity:0.38051596;stroke:#000000;stroke-width:0.42692894;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
1328
    <path
1329
       style="fill:none;stroke:#000000;stroke-width:0.40000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
1330
       d="m -346.48421,501.40615 -33.50819,0.0234"
1331
       id="path5011"
1332
       inkscape:connector-curvature="0"
1333
       sodipodi:nodetypes="cc" />
1334
    <path
1335
       style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.63111117"
1336
       d="m -340.64003,487.24559 31.63573,-0.27996"
1337
       id="path5033"
1338
       inkscape:connector-curvature="0" />
1339
    <path
1340
       inkscape:connector-curvature="0"
1341
       id="path5035"
1342
       d="m -340.64003,492.00495 25.97656,-0.27996"
1343
       style="fill:none;stroke:#000000;stroke-width:0.90615374px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.63111117" />
1344
    <path
1345
       style="fill:none;stroke:#000000;stroke-width:0.97945398px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.63111117"
1346
       d="m -340.64003,489.76525 30.34911,-0.27996"
1347
       id="path5037"
1348
       inkscape:connector-curvature="0" />
1349
    <path
1350
       inkscape:connector-curvature="0"
1351
       id="path5039"
1352
       d="m -340.64003,494.52461 30.34911,-0.27996"
1353
       style="fill:none;stroke:#000000;stroke-width:0.97945398px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.63111117" />
1354
    <path
1355
       style="fill:none;stroke:#000000;stroke-width:0.97945398px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:0.63111117"
1356
       d="m -340.64003,496.76431 30.34911,-0.27996"
1357
       id="path5041"
1358
       inkscape:connector-curvature="0" />
1359
    <path
1360
       style="fill:#aca793;fill-rule:evenodd;stroke:#000000;stroke-width:0.69999999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
1361
       d="m -311.21764,495.40703 20.80779,0 0,16.43173 c 0,0 -2.14659,3.41677 -10.41308,3.23694 -7.65912,-0.16662 -10.39471,-3.23694 -10.39471,-3.23694 z"
1362
       id="rect5043"
1363
       inkscape:connector-curvature="0"
1364
       sodipodi:nodetypes="cccscc" />
1365
    <path
1366
       sodipodi:type="arc"
1367
       style="fill:#aca793;fill-opacity:1;stroke:#000000;stroke-width:0.66247791;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
1368
       id="path5045"
1369
       sodipodi:cx="434.08142"
1370
       sodipodi:cy="202.51997"
1371
       sodipodi:rx="9.3787346"
1372
       sodipodi:ry="4.0594521"
1373
       d="m 443.46016,202.51997 c 0,2.24198 -4.19901,4.05946 -9.37874,4.05946 -5.17973,0 -9.37873,-1.81748 -9.37873,-4.05946 0,-2.24197 4.199,-4.05945 9.37873,-4.05945 5.17973,0 9.37874,1.81748 9.37874,4.05945 z"
1374
       transform="matrix(1.1164859,0,0,1,-785.42646,293.15706)" />
1375
    <path
1376
       sodipodi:nodetypes="cc"
1377
       inkscape:connector-curvature="0"
1378
       id="path5351"
1379
       d="m -685.30676,524.8974 c -21.95284,33.53585 -46.21966,-21.03719 -77.3607,7.03571"
1380
       style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#TriangleInM);marker-mid:none;marker-end:none" />
1381
    <text
1382
       transform="scale(1.0064833,0.99355846)"
1383
       sodipodi:linespacing="125%"
1384
       id="text5353"
1385
       y="550.10944"
1386
       x="-767.2041"
1387
       style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
1388
       xml:space="preserve"><tspan
1389
         y="550.10944"
1390
         x="-767.2041"
1391
         id="tspan5355"
1392
         sodipodi:role="line">External</tspan><tspan
1393
         id="tspan5357"
1394
         y="567.60944"
1395
         x="-767.2041"
1396
         sodipodi:role="line">system</tspan></text>
1101 1397
    <path
1102 1398
       style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-start:url(#TriangleInM);marker-mid:none;marker-end:none"
1103
       d="m -410.83907,356.50513 c 17.06337,6.02989 30.71372,78.73723 -4.27399,116.60723"
1104
       id="path3963-1-7-4-1-1-4"
1399
       d="m -688.17909,374.97937 c -21.95284,-33.53585 -46.21966,21.03719 -77.3607,-7.03571"
1400
       id="path3963-1-7-4-1-1"
1105 1401
       inkscape:connector-curvature="0"
1106 1402
       sodipodi:nodetypes="cc" />
1107 1403
    <text
1108 1404
       xml:space="preserve"
1109
       style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
1110
       x="-383.62946"
1111
       y="411.47977"
1112
       id="text2987-6-1-3-2-3-4-0-0-6"
1405
       style="font-size:14px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
1406
       x="-761.4964"
1407
       y="346.29715"
1408
       id="text2987-6-1-3-2"
1113 1409
       sodipodi:linespacing="125%"
1114 1410
       transform="scale(1.0064833,0.99355846)"><tspan
1115 1411
         sodipodi:role="line"
1116
         x="-383.62946"
1117
         y="411.47977"
1118
         id="tspan6324-6-3-1-8">Cumulative and</tspan><tspan
1412
         id="tspan3020-6-4-8"
1413
         x="-761.4964"
1414
         y="346.29715">External</tspan><tspan
1119 1415
         sodipodi:role="line"
1120
         x="-383.62946"
1121
         y="428.97977"
1122
         id="tspan6450">gauge data</tspan></text>
1123
    <rect
1124
       style="fill:#e9c6af;fill-rule:evenodd;stroke:#000000;stroke-width:1.1091907;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
1125
       id="rect2985-7-2-7-5-7-8-53-8-0"
1126
       width="55.146652"
1127
       height="25.452873"
1128
       x="-479.07977"
1129
       y="734.66815" />
1416
         x="-761.4964"
1417
         y="363.79715"
1418
         id="tspan6246">system</tspan></text>
1419
    <path
1420
       style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
1421
       d="m -827.8609,419.1796 -13.2018,11.17075 0,124.9093 -13.2018,13.2018"
1422
       id="path5384"
1423
       inkscape:connector-curvature="0"
1424
       sodipodi:nodetypes="cccc" />
1425
    <path
1426
       sodipodi:nodetypes="cccc"
1427
       inkscape:connector-curvature="0"
1428
       id="path5386"
1429
       d="m -827.8609,718.06416 -13.2018,-11.17075 0,-124.9093 -13.2018,-13.2018"
1430
       style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
1130 1431
    <text
1131
       xml:space="preserve"
1132
       style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold"
1133
       x="-449.5412"
1134
       y="758.12036"
1135
       id="text2987-6-1-5-0-7-6"
1432
       transform="scale(1.0064833,0.99355846)"
1136 1433
       sodipodi:linespacing="125%"
1137
       transform="scale(1.0064833,0.99355846)"><tspan
1138
         sodipodi:role="line"
1139
         id="tspan3020-6-0-79-65-6"
1140
         x="-449.5412"
1141
         y="758.12036">IPMI</tspan></text>
1142
    <text
1143
       xml:space="preserve"
1434
       id="text5394"
1435
       y="577.2912"
1436
       x="-883.53827"
1144 1437
       style="font-size:16px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans Bold"
1145
       x="-220.75206"
1146
       y="637.44946"
1147
       id="text2987-6-1-3-1"
1148
       sodipodi:linespacing="125%"
1149
       transform="scale(1.0064833,0.99355846)"><tspan
1150
         sodipodi:role="line"
1151
         id="tspan3020-6-4-7"
1152
         x="-220.75206"
1153
         y="637.44946">Driver Layer (Data Producers)</tspan></text>
1438
       xml:space="preserve"><tspan
1439
         id="tspan5396"
1440
         y="577.2912"
1441
         x="-883.53827"
1442
         sodipodi:role="line">KWAPI</tspan></text>
1154 1443
  </g>
1155 1444
</svg>
b/papers/2014/kwapi/paper.tex
121 121
\section{The \ac{KWAPI} Architecture}
122 122
\label{sec:architecture}
123 123

  
124
Depending on the number of monitored devices and the frequency at which measurements are taken, wattmeters can generate a large amount of data, which requires storage capacity for further processing and analysis. Although management systems often store and perform pre-processing locally on monitored nodes, such an approach poses a few challenges when measuring power consumption as: it can impact on the CPU utilisation and hence influence the power that nodes consume; and depending on the power management policy in place, resource managers can switch off idle nodes or set them to stand by mode to save energy. Centralised storage, on the other hand, allows for faster data access and processing, but can generate more traffic given that measurements need to be continuously transferred over the network to a central point. Once stored, components like OpenStack's Ceilometer can easily retrieve the data.
124
An overview of the \ac{KWAPI} architecture presented in Figure~\ref{fig:architecture}. The architecture follows a publish/subscribe model based on a set of layers comprising:
125 125

  
126
Wattmeters available in the market vary in terms of physical interconnection, communication protocols, packaging and precision of measurements they take. They are mostly packaged in multiple outlet power strips called \acp{PDU} or \acp{ePDU}, and more recently in the \ac{IPMI} cards embedded in the computers themselves. In our work, we used \ac{IPMI} initially to shutdown and turn on compute nodes, but nowadays we also use it to query a computer chassis remotely.
126
\begin{itemize} 
127
\item \textbf{Drivers}, considered data producers responsible for measuring the power consumption of monitored resources and providing the collected data to consumers via a communication bus; and 
128
\item \textbf{Data Consumers} --- or \textbf{Consumers} for short --- that subscribe to receive and process the measurement information. 
129
\end{itemize}
130

  
131
\begin{figure*}[!htb]
132
\center
133
\includegraphics[width=0.7\linewidth]{figs/architecture.pdf}
134
\caption{Overview of \ac{KWAPI}'s architecture.}
135
\label{fig:architecture}
136
\end{figure*}
137

  
138
The communication between the layers is handled by a bus, as explained in detail later. Data consumers can subscribe to receive information collected by drivers from multiple sites. Both drivers and consumers are easily extensible to support, respectively, several types of wattmeters and provide additional data processing services. A REST API is designed as a data consumer to provide a programming interface for developers and system administrators. In this work is used to interface with OpenStack by providing the information (\textit{i.e.} by polling monitored devices) required by a \textit{\ac{KWAPI} Pollster} to feed Ceilometer.
139

  
140
The following sections provide more details about the main components of the KWAPI architecture and their relationship with OpenStack Ceilometer.
141

  
142
\subsection{Driver Layer}
143

  
144
Drivers are threads initialised by a Driver Manager with a set of parameters loaded from a file compliant with the OpenStack configuration format. These parameters are used to query the meters (\textit{e.g.} IP address and port) and determine the sensor ID to be used in the collected metrics. The measurements that a driver obtains are represented as \ac{JSON} dictionaries that maintain a small footprint and that can be easily parsed. The size of dictionaries varies depending on the number of fields set by drivers (\textit{i.e.} whether message signing is enabled). 
145

  
146
Figure~\ref{fig:json} shows a simple example of a \ac{JSON} payload containing one measurement. Optional fields such as voltage and current can be included. ACK messages have a fixed size of 66 bytes when using TCP connection; drivers and data consumers communicate via IPC sockets when running on the same machine.
127 147

  
128
% the central agent and a dedicated pollster we developed
148
\begin{figure}
149
\includeJSON{figs/measurement.json}
150
\caption{Example of \ac{JSON} payload.}
151
\label{fig:json}
152
\end{figure}
153

  
154
Drivers can manage incidents themselves, but the manager also checks periodically if all threads are active, restarting them if necessary. It is important to avoid losing measurements because the reported information is in W instead of kWh. The loss of a measurement may be significant. 
155

  
156
Wattmeters available in the market vary in terms of physical interconnection, communication protocols, packaging and precision of measurements they take. They are mostly packaged in multiple outlet power strips called \acp{PDU} or \acp{ePDU}, and more recently in the \ac{IPMI} cards embedded in the computers themselves. Support for several types of wattmeter has been implemented, which drivers can use to interface with a wide range of equipments. In our work, we used \ac{IPMI} initially at Nova to shutdown and turn on compute nodes, but nowadays we also use it to query a computer chassis remotely.
129 157

  
130 158
Although Ethernet is generally used to transport \ac{IPMI} or SNMP packets over IP, USB and RS-232 serial links are also common. Wattmeters that use Ethernet are generally connected to an administration network (isolated from the data centre main data network). Moreover, wattmeters may differ in the manner they operate; some equipments send measurements to a management node on a regularly basis (push mode), whereas others respond to queries (pull mode). Other characteristics that differ across wattmeters include: 
131 159

  
......
135 163
\item methodology applied to each measurement (\textit{e.g.} mean of several measurements, instantaneous values, and exponential moving averages).
136 164
\end{itemize}
137 165

  
138
To illustrate the differences among wattmeters, Table \ref{tab:wattmeters} shows the characteristics of equipments we deployed and evaluated in our data centres.
139

  
140
The granularity at which measurements are taken is another important factor as the needs often vary depending on what one wishes to evaluate. Taking measurements at one-second interval or smaller is common under several scenarios. This can be a challenge in an infrastructure comprising hundreds or thousands of nodes, demanding efficient and scalable mechanisms for transferring information on power consumption.
166
Table \ref{tab:wattmeters} shows the characteristics of equipments we deployed and evaluated in our data centres.
141 167

  
142 168
\begin{table}
143 169
\centering
......
165 191
\end{footnotesize}
166 192
\end{table}
167 193

  
168
Furthermore, leveraging the capabilities offered by existing cloud platforms like OpenStack, can help the adoption of a monitoring system, ease deployment, and reduce its learning curve. In addition, users and systems administrators need management reports and visualisation tools to analyse the impact of energy management policies and quickly retrieve relevant data for further analysis.  
169

  
170
\begin{figure*}[!htb]
171
\center
172
\includegraphics[width=0.9\linewidth]{figs/architecture.pdf}
173
\caption{Overview of \ac{KWAPI}'s architecture.}
174
\label{fig:architecture}
175
\end{figure*}
176

  
177
Hence, we summarise the main requirements for the energy monitoring platform as follows: 
178

  
179
\begin{enumerate}
180
\item \label{req:data_storage}\textbf{Reliable data storage}: a centralised storage where energy consumption data can be placed and easily retrieved. Centralised storage here does not imply data is stored on a single node. Systems like Apache Hadoop HDFS\footnote{http://hadoop.apache.org/}, Apache Cassandra\footnote{http://cassandra.apache.org/}, and MongoDB\footnote{http://www.mongodb.org/} could be used.
181

  
182
\item \label{req:heterogeneous_meters}\textbf{Handle heterogeneous wattmeters}: there is a need for handling multiple device types and to design the architecture in a way that support for new wattmeters can be easily included.
183

  
184
\item \label{req:efficient_communication}\textbf{Efficient communication}: the envisioned system should provide means for nodes to efficiently communicate their energy consumption to components interested in processing it. A message bus could be used to manage this communication efficiently.
185

  
186
\item \label{req:open_source}\textbf{Integration with open source cloud platform}: the proposed system should interface with existing open source cloud platforms to ease deployment and use.
187

  
188
\item \label{req:visualisation}\textbf{Visualisation and reports}: the system should offer a set of management reports that provide quick feedback to administrators and users during execution of tasks and applications. In addition, it should provide means and APIs for advanced queries.
189
\end{enumerate}
190

  
191
The following sections describe the \ac{KWAPI} architecture and how it addresses the aforementioned requirements.
192

  
193
\subsection{\ac{KWAPI}}
194

  
195
Figure~\ref{fig:architecture} depicts the \ac{KWAPI} architecture, which is based on a set of layers comprising drivers, responsible for performing measurements, and plug-ins that subscribe to receive the collected information. The communication between the two layers is handled by a bus as explained later. Following a publish/subscribe architecture, plug-ins can subscribe to receive information collected by drivers from multiple sites. Drivers and plug-ins are easily extensible to support other types of wattmeters, and provide additional services. The API is designed to provide a programming interface for developers and system administrators, and is used to interface with OpenStack by providing the information (\textit{i.e.} by polling monitored devices) required to feed Ceilometer.
196

  
197
Ceilometer's central agent and a dedicated pollster that we developed are used to publish energy metrics. They query the API plug-in and publish cumulative (kWh) and gauge (W) counters. These counters are not associated with a particular tenant, since a server can host multiple clients simultaneously. By exploring Ceilometer in our framework, we address two requirements, namely (\ref{req:data_storage}) by leveraging the data repository and storage abstraction layers that Ceilometer provides; and (\ref{req:open_source}) via integration with OpenStack. The following subsections provide more details on the framework layers.
198 194

  
199
\subsubsection{Driver Layer}
195
\subsection{Data Consumers}
200 196

  
201
Drivers are threads initialised by a manager with a set of parameters loaded from a file compliant with the OpenStack configuration format. These parameters are used to query the meters (\textit{e.g.} IP address and port) and determine the sensor ID to be used in the collected metrics. The measurements that a driver obtains are represented as \ac{JSON} dictionaries, which have the advantage of being human readable and easily parsed, while keeping a small footprint. The size of the dictionaries may vary depending on the number of fields set by the drivers (\textit{i.e.} whether message signing is enabled). Figure~\ref{fig:json} shows an example of a \ac{JSON} payload containing one measurement. Optional fields can be added, such as voltage and current. ACK messages have a fixed size of 66 bytes (on a TCP connection). When drivers and API are on the same machine, they communicate via IPC sockets.
197
A data consumer retrieves and processes measurements taken by drivers and provided via bus. Consumers expose the information to other services including Ceilometer and visualisation tools. By using a system of prefixes, consumers can subscribe to all producers or a subset of them. When receiving a message, a consumer verifies the signature, extracts the content and processes the data. By default \ac{KWAPI} provides two data consumers, namely the REST API (used to interface with Ceilometer) and a visualisation consumer.
202 198

  
203
\begin{figure}
204
\includeJSON{figs/measurement.json}
205
\caption{Example of \ac{JSON} payload.}
206
\label{fig:json}
207
\end{figure}
208

  
209
As incidents may occur, the manager periodically checks if all threads are active, restarting them if necessary. Drivers can manage incidents themselves, but if for any reason they stop their execution, they are automatically restarted by the manager. It is important to avoid losing measurements because the information reported is in W and not kWh; the loss of a measurement is hence significant. 
199
\subsubsection{REST API}
210 200

  
211
Moreover, support for several types of wattmeter has been implemented, which drivers can use to interface with a wide range of equipments. The concept of drivers and support for multiple wattmeters addresses requirement (\ref{req:heterogeneous_meters}).
201
The API consumer computes the number of kWh of each driver probe, adds a timestamp, and stores the last value in watts. If a driver has not provided measurements for a long time, the corresponding data is removed. The REST API allows an external system to retrieve the name of probes, measurements in W or kWh, and timestamps. The API is secured by OpenStack Keystone tokens\footnote{http://keystone.openstack.org}, whereby the consumer needs to ensure the validity of a token before sending a response to the system. 
212 202

  
213
\subsubsection{Plug-in Layer}
203
\subsubsection{Visualisation}
214 204

  
215
A plug-in retrieves and processes measurements taken by drivers and provided via bus. Plug-ins expose the information to other services including Ceilometer and visualisation tools. By using a system of prefixes, plug-ins can subscribe to all sensors, a subset, or to other plug-ins. After verifying a message signature, they extract its content and process the data. By default, \ac{KWAPI} provides two plug-ins, namely an API to interface with Ceilometer, and a visualisation tool.
205
The visualisation consumer builds \ac{RRD} files from received measurements, and generates graphs that show the energy consumption over a given period, with additional information such as average electricity consumption, minimum and maximum watt values, last value, total energy and cost in Euros. \ac{RRD} files are of fixed size and store several collections of metrics with different granularities. A web interface displays the generated graphics and a cache mechanism triggers the creation of graphs during queries only if they are out of date. These visualisation resources offer quick feedback to administrators and users during execution of tasks and applications. Figure~\ref{fig:graph_example} shows an example of generated graph. 
216 206

  
217 207
\begin{figure*}[!htb]
218 208
\center
......
221 211
\label{fig:graph_example}
222 212
\end{figure*}
223 213

  
224
\begin{itemize}
214
\subsection{Internal Communication Bus}
225 215

  
226
\item \textbf{API for Ceilometer}: the API plug-in computes the number of kWh of each probe, adds a timestamp, and stores the last value in watts. As mentioned earlier, this data is stored by Ceilometer using its own database. If a probe has not provided measurements for a long time, the corresponding data is removed. This plug-in has a REST API that allows a client to retrieve the name of the probes, measurements in W or kWh, and timestamps. The API is secured by using OpenStack Keystone tokens\footnote{http://keystone.openstack.org}, whereby a plug-in needs to ensure the validity of a token before sending a response to a client. 
227
  
228
\item \textbf{Visualisation}: the visualisation plug-in builds \ac{RRD} files from received measurements, and generates graphs that show the energy consumption over a given period, with additional information (average electricity consumption, minimum and maximum watt values, last value, total energy and cost in Euros). \ac{RRD} files are of fixed size, and store several collections of metrics with different granularities. Figure~\ref{fig:graph_example} shows an example of generated graph. In addition, a web interface displays the generated graphics and a cache mechanism triggers the creation of graphs during queries only if they are out of date. This plug-in is implemented to satisfy requirement (\ref{req:visualisation}).
229
\end{itemize}
216
\ac{KWAPI} uses ZeroMQ \cite{HintjensZeroMQ:2013}, a fast broker-less messaging framework written in C++, where transmitters play the role of buffers. ZeroMQ supports a wide range of bus modes, including cross-thread communication, IPC, and TCP. Switching from one mode to another is straightforward. ZeroMQ also provides several design patterns such as publish/subscribe and request/response. As mentioner earlier, in our publish/subscribe architecture drivers are publishers, and data consumers are subscribers. If no data consumer is subscribed to receive data from a given driver, the latter will not send any information through the network.
217

  
218
Moreover, one or more optional forwarders can be installed between drivers and data consumers to minimise network usage. Forwarders are introduced . Forwarders are designed to act as especial data consumers who subscribe to receive information from a driver and multicast it to all normal data consumers subscribed to receive the information. Forwarders enable the design of complex topologies and optimisation of network usage when handling data from multiple sites. They can also be used to bypass network isolation problems and perform load balancing.
219

  
220
\subsection{Interface with Ceilometer}
221

  
222
We opted for integrating KWAPI with an existing open source cloud platform to ease deployment and use. Leveraging the capabilities offered OpenStack can help in the adoption of a monitoring system and reduce its learning curve.
223

  
224
Ceilometer's central agent and a dedicated pollster (\textit{i.e.} \ac{KWAPI} Pollster) are used to publish and store energy metrics into Ceilometer's database. They query the REST API data consumer and publish cumulative (kWh) and gauge (W) counters that are not associated with a particular tenant, since a server can host multiple clients simultaneously. 
230 225

  
226
Depending on the number of monitored devices and the frequency at which measurements are taken, wattmeters can generate a large amount of data thus demanding storage capacity for further processing and analysis. Management systems often store and perform pre-processing locally on monitored nodes, but such an approach can impact on CPU utilisation and influence the power consumption. In addition, resource managers may switch off idle nodes or set them to stand by mode to save energy, which make them unavailable for processing. Centralised storage, on the other hand, allows for faster data access and processing, but can generate more traffic given that measurements need to be continuously transferred over the network to a central point. Hence, a centralised storage where energy consumption data can be placed and easily retrieved. 
231 227

  
232
\subsubsection{Internal communication bus}
228
Ceilometer using its own database, which is used here to store the energy consumption metrics. In this way, systems that interface with OpenStack's Ceilometer, including Nova, can easily retrieve the data. It is important to notice that, even though Ceilometer provides the abstraction of a central repository for metrics, it also uses a database abstraction that enables the use of distributed systems such as Apache Hadoop HDFS\footnote{http://hadoop.apache.org/}, Apache Cassandra\footnote{http://cassandra.apache.org/}, and MongoDB\footnote{http://www.mongodb.org/}. 
233 229

  
234
\ac{KWAPI} uses ZeroMQ \cite{HintjensZeroMQ:2013}, a fast broker-less messaging framework written in C++, where transmitters play the role of buffers. ZeroMQ supports a wide range of bus modes, including cross-thread communication, IPC, and TCP. Switching from one mode to another is straightforward. ZeroMQ also provides several design patterns such as publish/subscribe, and request/response. In our publish/subscribe architecture drivers are publishers, and plug-ins are subscribers. One or more forwarders between them broadcast packets to all plug-ins subscribed to receive information from a given probe. Thanks to forwarders, the network usage is optimised because the packets a driver generates are sent only once regardless of the number of plug-ins registered to receive it. If a probe is not listened by any plug-in, its measurements are not sent to forwarder and hence not transmitted over the network. The forwarders not only reduce dramatically the network usage, but allow one to build flexible architectures, by bypassing network isolation problems, or performing load balancing. Although ZeroMQ and forwarders have been employed to address requirement \ref{req:efficient_communication} (\textit{i.e.} efficient communication), in the next section we evaluate the scalability and limitations of a bus to transfer power-consumption measurements in large data centres. 
230
The granularity at which measurements are taken and metrics are computed is another important factor because user needs vary depending on what they wish to evaluate. Taking measurements at one-second interval or smaller is common under several scenarios, which can be a challenge in an infrastructure comprising hundreds or thousands of nodes, demanding efficient and scalable mechanisms for transferring information on power consumption. Hence, in the next section we evaluate the throughput of KWAPI under a few scenarios.
235 231

  
236 232

  
237 233
\section{Performance Evaluation}
......
298 294

  
299 295
%While measuring the network usage, our experiments showed a transfer rate of around 230KB/s with message signing enabled and around 135KBs/s otherwise. Message signing overall introduces an overhead of 70\%. Sending large packets can be explored to decrease the packet overhead. If several drivers send measurements simultaneously, ZeroMQ provides an optimisation mechanism that aggregates the data into a single TCP datagram. Figure~\ref{fig:packet_size} shows the number of packets under the evaluated scenarios. We noticed that certain packets contain up to forty measurements.
300 296

  
301
Although a measurement interval of one second meets the requirements of users in our platform, we wanted to evaluate the impact of using a communication bus in the transfer of observations between drivers and API. In a second experiment we used two machines. On the first machine we instantiated 1,000 driver threads placing random observations on the communication bus. On the second machine we measured the number of measurements that the API is able to receive over a minute. We varied the time between measurements from 0.2 to 1.0 seconds. Figure~\ref{fig:measurement_intervals} summarises the obtained results. Though the number of observations generated in this experiment is much higher than what we currently need to handle in our platform, we observe that the framework is able to transfer measurements from drivers to API under a 0.4 second interval without adding much jitter. Under smaller measurement intervals, however, observations start to accumulate and are transferred at large chunks. We believe that under small measurement intervals, and consequently a very large number of observations per second, an architecture based on stream processing systems that guarantee data processing might be more appropriate. Regarding our requirement (\ref{req:efficient_communication}), although the framework suits the purposes of large range of users, if measurements are to be taking at very small time intervals, a stream processing architecture would probably yield better performance.
297
Although a measurement interval of one second meets the requirements of users in our platform, we wanted to evaluate the impact of using a communication bus in the transfer of observations between drivers and API. In a second experiment we used two machines. On the first machine we instantiated 1,000 driver threads placing random observations on the communication bus. On the second machine we measured the number of measurements that the API is able to receive over a minute. We varied the time between measurements from 0.2 to 1.0 seconds. Figure~\ref{fig:measurement_intervals} summarises the obtained results. Though the number of observations generated in this experiment is much higher than what we currently need to handle in our platform, we observe that the framework is able to transfer measurements from drivers to API under a 0.4 second interval without adding much jitter. Under smaller measurement intervals, however, observations start to accumulate and are transferred at large chunks. We believe that under small measurement intervals, and consequently a very large number of observations per second, an architecture based on stream processing systems that guarantee data processing might be more appropriate. Although the framework suits the purposes of large range of users, if measurements are to be taking at very small time intervals, a stream processing architecture would probably yield better performance by placing elements to preprocess data closer to where it is generated.
302 298

  
303 299
As mentioned earlier, plug-ins can subscribe and select probes from which they want to receive information. If multiple plug-ins select a node, information from the node is sent only once through the network. The architecture also allows for a hierarchy of plug-ins to be established, where a plug-in can be deployed on a site to summarise or compute average values that are placed on the bus to be consumed by higher level plug-ins. 
304 300

  

Formats disponibles : Unified diff