aaarticlea/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIwLjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHdpZHRoPSIzNTRweCIgaGVpZ2h0PSI1Ny44cHgiIHZpZXdCb3g9IjAgMCAzNTQgNTcuOCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMzU0IDU3Ljg7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5zdDB7ZmlsbDojRTZFN0U4O30KCS5zdDF7ZmlsbDp1cmwoI1NWR0lEXzFfKTt9Cgkuc3Qye2ZpbGw6dXJsKCNTVkdJRF8yXyk7fQoJLnN0M3tmaWxsOnVybCgjU1ZHSURfM18pO30KCS5zdDR7ZmlsbDp1cmwoI1NWR0lEXzRfKTt9Cgkuc3Q1e2ZpbGw6dXJsKCNTVkdJRF81Xyk7fQo8L3N0eWxlPgo8Zz4KCTxnPgoJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik05OS45LDMxLjJjLTAuNCwxMC4xLTguMywxNy45LTE4LjIsMTcuOWMtMTAuNCwwLTE4LjItOC40LTE4LjItMTguNmMwLTEwLjMsOC40LTE4LjcsMTguNi0xOC43CgkJCWM0LjYsMCw5LjEsMiwxMyw1LjZsLTMsMy43Yy0yLjktMi41LTYuNS00LjMtMTAtNC4zYy03LjUsMC0xMy43LDYuMi0xMy43LDEzLjhjMCw3LjcsNS44LDEzLjcsMTMuMiwxMy43CgkJCWM2LjcsMCwxMS45LTQuOSwxMi45LTExLjFINzkuNXYtNC40aDIwLjRWMzEuMnoiLz4KCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTE3LjMsMjguN2gtMi44Yy0zLjEsMC01LjYsMi41LTUuNiw1LjZ2MTQuNWgtNVYyNGg0LjF2Mi4xYzEuMy0xLjMsMy41LTIuMSw1LjktMi4xaDUuNEwxMTcuMywyOC43eiIvPgoJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xNDQuNCw0OC44aC00LjJ2LTMuMWMtMy4zLDMuMi04LjQsNC43LTEzLjYsMi40Yy0zLjktMS43LTYuNy01LjItNy41LTkuNGMtMS41LTgsNC43LTE1LjIsMTIuNi0xNS4yCgkJCWMzLjMsMCw2LjMsMS4zLDguNSwzLjVWMjRoNC4zVjQ4Ljh6IE0xMzkuMywzOC4yYzEuMi01LjEtMi43LTkuNi03LjYtOS42Yy00LjMsMC03LjgsMy41LTcuOCw3LjhjMCw0LjgsNC4zLDguNiw5LjIsNy43CgkJCUMxMzYuMSw0My42LDEzOC42LDQxLjIsMTM5LjMsMzguMnoiLz4KCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTU0LjQsMjIuNlYyNGg3Ljl2NC40aC03Ljl2MjAuNWgtNC45VjIyLjdjMC01LjUsMy45LTguNyw4LjgtOC43aDZsLTIsNC43aC00CgkJCUMxNTYuMSwxOC43LDE1NC40LDIwLjQsMTU0LjQsMjIuNnoiLz4KCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTg4LjYsNDguOGgtNC4ydi0zLjFjLTMuMywzLjItOC40LDQuNy0xMy42LDIuNGMtMy45LTEuNy02LjctNS4yLTcuNS05LjRjLTEuNS04LDQuNy0xNS4yLDEyLjYtMTUuMgoJCQljMy4zLDAsNi4zLDEuMyw4LjUsMy41VjI0aDQuM1Y0OC44eiBNMTgzLjUsMzguMmMxLjItNS4xLTIuNy05LjYtNy42LTkuNmMtNC4zLDAtNy44LDMuNS03LjgsNy44YzAsNC44LDQuMyw4LjYsOS4yLDcuNwoJCQlDMTgwLjMsNDMuNiwxODIuOCw0MS4yLDE4My41LDM4LjJ6Ii8+CgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTIxNS4yLDM0LjF2MTQuN2gtNVYzNC4xYzAtMy4xLTIuNS01LjYtNS42LTUuNmMtMy4xLDAtNS42LDIuNS01LjYsNS42djE0LjdoLTVWMjRoNC4xdjIuMQoJCQljMS44LTEuNiw0LjItMi41LDYuNy0yLjVDMjEwLjYsMjMuNiwyMTUuMiwyOC4zLDIxNS4yLDM0LjF6Ii8+CgkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTI0NC40LDQ4LjhoLTQuMnYtMy4xYy0zLjMsMy4yLTguNCw0LjctMTMuNiwyLjRjLTMuOS0xLjctNi43LTUuMi03LjUtOS40Yy0xLjUtOCw0LjctMTUuMiwxMi42LTE1LjIKCQkJYzMuMywwLDYuMywxLjMsOC41LDMuNVYyNGg0LjNWNDguOHogTTIzOS4zLDM4LjJjMS4yLTUuMS0yLjctOS42LTcuNi05LjZjLTQuMywwLTcuOCwzLjUtNy44LDcuOGMwLDQuOCw0LjMsOC42LDkuMiw3LjcKCQkJQzIzNi4xLDQzLjYsMjM4LjYsNDEuMiwyMzkuMywzOC4yeiIvPgoJPC9nPgoJPGc+CgkJPGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF8xXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIyNjkuMDEwNCIgeTE9IjY1Ljc1NTUiIHgyPSIyNjkuMDEwNCIgeTI9IjEzLjQ4ODciPgoJCQk8c3RvcCAgb2Zmc2V0PSIwIiBzdHlsZT0ic3RvcC1jb2xvcjojRkZGMTAwIi8+CgkJCTxzdG9wICBvZmZzZXQ9IjEiIHN0eWxlPSJzdG9wLWNvbG9yOiNGMDVBMjgiLz4KCQk8L2xpbmVhckdyYWRpZW50PgoJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik0yNzguNCw0OC44aC0xOC43di0zN2g1djMxLjloMTMuN1Y0OC44eiIvPgoJCTxsaW5lYXJHcmFkaWVudCBpZD0iU1ZHSURfMl8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMjkyLjEwNDQiIHkxPSI2NS43NTU1IiB4Mj0iMjkyLjEwNDQiIHkyPSIxMy40ODg3Ij4KCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0ZGRjEwMCIvPgoJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRjA1QTI4Ii8+CgkJPC9saW5lYXJHcmFkaWVudD4KCQk8cGF0aCBjbGFzcz0ic3QyIiBkPSJNMzA1LDQ4LjhoLTQuMnYtMy4xYy0yLjIsMi4xLTUuMiwzLjUtOC42LDMuNWMtNy4xLDAtMTIuOS01LjgtMTIuOS0xMi45YzAtNyw1LjctMTIuOCwxMi45LTEyLjgKCQkJYzMuMywwLDYuMywxLjMsOC41LDMuNXYtMy4xaDQuM1Y0OC44eiBNMzAwLjEsMzYuM2MwLTQuMy0zLjUtNy44LTcuOS03LjhjLTQuMywwLTcuOCwzLjUtNy44LDcuOGMwLDQuNCwzLjUsNy45LDcuOCw3LjkKCQkJQzI5Ni42LDQ0LjIsMzAwLjEsNDAuNywzMDAuMSwzNi4zeiIvPgoJCTxsaW5lYXJHcmFkaWVudCBpZD0iU1ZHSURfM18iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMzIyLjA0NjgiIHkxPSI2NS43NTU1IiB4Mj0iMzIyLjA0NjgiIHkyPSIxMy40ODg3Ij4KCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0ZGRjEwMCIvPgoJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRjA1QTI4Ii8+CgkJPC9saW5lYXJHcmFkaWVudD4KCQk8cGF0aCBjbGFzcz0ic3QzIiBkPSJNMzM0LjksMzYuM2MwLDcuMS01LjgsMTIuOS0xMi45LDEyLjljLTMuMywwLTYuNC0xLjQtOC42LTMuNXYzLjFoLTQuMnYtMzVoNC45djEyLjZjMi4xLTEuOCw0LjgtMyw3LjktMwoJCQlDMzI5LjEsMjMuNCwzMzQuOSwyOS4yLDMzNC45LDM2LjN6IE0zMjkuOCwzNi4zYzAtNC4zLTMuNS03LjgtNy44LTcuOHMtNy44LDMuNS03LjgsNy44YzAsNC4zLDMuNSw3LjgsNy44LDcuOAoJCQlTMzI5LjgsNDAuNiwzMjkuOCwzNi4zeiIvPgoJCTxsaW5lYXJHcmFkaWVudCBpZD0iU1ZHSURfNF8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMzQ0Ljc5MTQiIHkxPSI2NS43NTU1IiB4Mj0iMzQ0Ljc5MTQiIHkyPSIxMy40ODg3Ij4KCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0ZGRjEwMCIvPgoJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRjA1QTI4Ii8+CgkJPC9saW5lYXJHcmFkaWVudD4KCQk8cGF0aCBjbGFzcz0ic3Q0IiBkPSJNMzUyLDI1LjZsLTIuMiwzLjZjLTEuMS0wLjYtMi44LTEuNi00LjgtMS42Yy0xLjksMC0zLjYsMC45LTMuNiwyLjVjMCwxLjcsMS45LDIuMyw0LjQsMy4yCgkJCWM0LDEuNCw3LjUsNC4xLDcuNSw4LjJjMCw0LjEtMy41LDcuNi04LjYsNy42Yy0zLjEsMC02LjItMS4yLTguMy0yLjVsMi00LjFjMS40LDAuOCw0LjEsMS45LDYuMiwxLjljMi41LDAsMy42LTEuNSwzLjYtMi45CgkJCWMwLTEuNy0xLjYtMi42LTUtNGMtMi41LTEtNi41LTIuNi02LjUtNy4xYzAtNC4xLDMuNS02LjksOC4zLTYuOUMzNDcuNiwyMy40LDM0OS45LDI0LjQsMzUyLDI1LjZ6Ii8+Cgk8L2c+Cgk8bGluZWFyR3JhZGllbnQgaWQ9IlNWR0lEXzVfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjI2LjYwMjciIHkxPSI2OS45Mzc4IiB4Mj0iMjYuNjAyNyIgeTI9IjE2LjczMjQiPgoJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNGRkYxMDAiLz4KCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRjA1QTI4Ii8+Cgk8L2xpbmVhckdyYWRpZW50PgoJPHBhdGggY2xhc3M9InN0NSIgZD0iTTM1LjgsMzhjLTAuMi0wLjItMC41LTAuMy0wLjctMC4xYy0wLjEsMC0wLjEsMC4xLTAuMiwwLjFjLTAuMiwwLjEtMC40LDAuMi0wLjcsMC4zYy0wLjIsMC4xLTAuNSwwLjEtMC44LDAuMgoJCWMtMC4xLDAtMC4zLDAtMC40LDBjLTAuMSwwLTAuMSwwLTAuMiwwYy0wLjEsMC0wLjEsMC0wLjIsMGMtMC4xLDAtMC4xLDAtMC4yLDBjLTAuMSwwLTAuMiwwLTAuMiwwYzAsMCwwLDAsMCwwbDAsMGwtMC4xLDAKCQljMCwwLTAuMSwwLTAuMSwwYy0wLjEsMC0wLjEsMC0wLjIsMGMtMC42LTAuMS0xLjItMC4zLTEuNy0wLjVjLTAuNi0wLjMtMS4xLTAuNi0xLjYtMS4xYy0wLjUtMC40LTAuOS0xLTEuMy0xLjYKCQljLTAuMy0wLjYtMC42LTEuMy0wLjctMmMtMC4xLTAuMy0wLjEtMC43LTAuMS0xLjFjMC0wLjEsMC0wLjIsMC0wLjNjMCwwLDAsMCwwLDBsMCwwbDAtMC4xYzAsMCwwLTAuMSwwLTAuMWMwLTAuMiwwLTAuNCwwLjEtMC42CgkJYzAuMy0xLjUsMS0zLDIuMi00LjJjMC4zLTAuMywwLjYtMC41LDEtMC44YzAuMy0wLjIsMC43LTAuNCwxLjEtMC42YzAuNC0wLjIsMC44LTAuMywxLjItMC40YzAuNC0wLjEsMC44LTAuMiwxLjItMC4yCgkJYzAuMiwwLDAuNCwwLDAuNiwwYzAuMSwwLDAuMSwwLDAuMSwwbDAuMiwwbDAuMSwwYzAsMCwwLDAsMCwwbDAsMGwwLjIsMGMwLjUsMCwwLjksMC4xLDEuNCwwLjJjMC45LDAuMiwxLjgsMC41LDIuNiwxCgkJYzEuNiwwLjksMywyLjMsMy45LDRjMC40LDAuOCwwLjcsMS44LDAuOSwyLjdjMCwwLjIsMC4xLDAuNSwwLjEsMC43bDAsMC4ybDAsMC4yYzAsMC4xLDAsMC4xLDAsMC4yYzAsMC4xLDAsMC4xLDAsMC4ybDAsMC4ybDAsMC4yCgkJYzAsMC4xLDAsMC4zLDAsMC40YzAsMC4zLDAsMC41LTAuMSwwLjhjMCwwLjMtMC4xLDAuNS0wLjEsMC44QzQzLDM2LjgsNDMsMzcsNDIuOSwzNy4zYy0wLjEsMC41LTAuMywxLTAuNSwxLjUKCQljLTAuNCwxLTAuOSwxLjktMS41LDIuN2MtMS4yLDEuNy0yLjksMy4xLTQuOCwzLjljLTEsMC40LTIsMC43LTMsMC45Yy0wLjUsMC4xLTEsMC4xLTEuNiwwLjJsLTAuMSwwbC0wLjEsMGwtMC4yLDBsLTAuMywwbC0wLjEsMAoJCWMwLjEsMCwwLDAsMCwwbC0wLjEsMGMtMC4zLDAtMC42LDAtMC44LDBjLTEuMS0wLjEtMi4yLTAuMy0zLjMtMC42Yy0xLjEtMC4zLTIuMS0wLjctMy4xLTEuMmMtMi0xLTMuNy0yLjUtNS4xLTQuMgoJCWMtMC43LTAuOS0xLjMtMS44LTEuOC0yLjhjLTAuNS0xLTAuOS0yLTEuMi0zYy0wLjMtMS0wLjUtMi4xLTAuNS0zLjJsMC0wLjJsMC0wLjFsMCwwbDAtMC4xbDAtMC4ybDAsMGwwLTAuMWwwLTAuMWwwLTAuM2wwLDAKCQljMCwwLDAsMCwwLDBsMC0wLjFjMC0wLjEsMC0wLjMsMC0wLjRjMC0wLjUsMC4xLTEuMSwwLjEtMS42YzAuMS0wLjUsMC4yLTEuMSwwLjMtMS42YzAuMS0wLjUsMC4yLTEuMSwwLjQtMS42CgkJYzAuMy0xLjEsMC43LTIuMSwxLjEtMy4xYzAuOS0yLDIuMS0zLjcsMy41LTUuMWMwLjQtMC4zLDAuNy0wLjcsMS4xLTFjMC40LTAuMywwLjgtMC42LDEuMi0wLjljMC40LTAuMywwLjgtMC41LDEuMy0wLjcKCQljMC4yLTAuMSwwLjQtMC4yLDAuNy0wLjNjMC4xLDAsMC4yLTAuMSwwLjMtMC4xYzAuMS0wLjEsMC4yLTAuMSwwLjMtMC4xYzAuNC0wLjIsMC45LTAuNCwxLjQtMC41YzAuMSwwLDAuMi0wLjEsMC40LTAuMQoJCWMwLjEsMCwwLjItMC4xLDAuNC0wLjFjMC4yLTAuMSwwLjUtMC4xLDAuNy0wLjJjMC4xLDAsMC4yLTAuMSwwLjQtMC4xYzAuMSwwLDAuMi0wLjEsMC40LTAuMWMwLjEsMCwwLjIsMCwwLjQtMC4xbDAuMiwwbDAuMiwwCgkJYzAuMSwwLDAuMiwwLDAuNC0wLjFjMC4xLDAsMC4zLDAsMC40LTAuMWMwLjEsMCwwLjMsMCwwLjQsMGMwLjEsMCwwLjIsMCwwLjMsMGwwLjIsMGwwLjEsMGwwLjEsMGMwLjEsMCwwLjMsMCwwLjQsMGwwLjIsMAoJCWMwLDAsMC4xLDAsMCwwbDAsMGwwLjEsMGMwLjEsMCwwLjIsMCwwLjQsMGMwLjUsMCwwLjksMCwxLjQsMGMwLjksMCwxLjgsMC4xLDIuNywwLjNjMS44LDAuMywzLjQsMC45LDQuOSwxLjYKCQljMS41LDAuNywyLjksMS42LDQsMi42YzAuMSwwLjEsMC4xLDAuMSwwLjIsMC4yYzAuMSwwLjEsMC4xLDAuMSwwLjIsMC4yYzAuMSwwLjEsMC4zLDAuMywwLjQsMC40YzAuMSwwLjEsMC4zLDAuMywwLjQsMC40CgkJYzAuMSwwLjEsMC4zLDAuMywwLjQsMC40YzAuNSwwLjUsMSwxLjEsMS40LDEuNmMwLjgsMS4xLDEuNSwyLjEsMiwzLjJjMCwwLjEsMC4xLDAuMSwwLjEsMC4yYzAsMC4xLDAuMSwwLjEsMC4xLDAuMgoJCWMwLjEsMC4xLDAuMSwwLjIsMC4yLDAuNGMwLjEsMC4xLDAuMSwwLjIsMC4yLDAuNGMwLjEsMC4xLDAuMSwwLjIsMC4yLDAuNGMwLjIsMC41LDAuNCwwLjksMC41LDEuNGMwLjIsMC43LDAuNCwxLjMsMC42LDEuOQoJCWMwLjEsMC4yLDAuMywwLjQsMC41LDAuM2wwLDBjMC4yLDAsMC40LTAuMiwwLjQtMC40YzAtMC42LDAtMS4zLTAuMS0yLjFjLTAuMS0xLTAuMy0yLjEtMC42LTMuM2MtMC4zLTEuMi0wLjgtMi42LTEuNS00CgkJYy0wLjctMS40LTEuNi0yLjktMi44LTQuM2MtMC41LTAuNi0xLTEuMS0xLjUtMS42YzAuOC0zLjItMS02LTEtNmMtMy4xLTAuMi01LjEsMS01LjgsMS41Yy0wLjEtMC4xLTAuMi0wLjEtMC40LTAuMgoJCUMzOSw3LjQsMzguNSw3LjIsMzcuOSw3Yy0wLjYtMC4yLTEuMS0wLjMtMS43LTAuNWMtMC42LTAuMS0xLjItMC4zLTEuOC0wLjNjLTAuMSwwLTAuMiwwLTAuMywwQzMyLjgsMS44LDI4LjksMCwyOC45LDAKCQljLTQuMywyLjgtNS4yLDYuNi01LjIsNi42YzAsMC4xLDAuMSwwLjEsMC4xLDAuMmMtMC4zLDAuMS0wLjYsMC4yLTAuOSwwLjNjLTAuMywwLjEtMC43LDAuMi0xLDAuM2MtMC4zLDAuMS0wLjcsMC4zLTEsMC40CgkJYy0wLjcsMC4zLTEuMywwLjYtMS45LDFjLTAuNiwwLjQtMS4zLDAuNy0xLjksMS4yYzAsMCwwLDAtMC4xLDBjMC0wLjEsMC0wLjEsMC0wLjFjLTYtMi4zLTExLjQsMC41LTExLjQsMC41CgkJYy0wLjUsNi40LDIuNCwxMC40LDMsMTEuMmMtMC4xLDAuNC0wLjMsMC44LTAuNCwxLjJjLTAuNCwxLjQtMC44LDIuOS0xLDQuNWMwLDAuMi0wLjEsMC40LTAuMSwwLjdDMS42LDMwLjUsMCwzNi4yLDAsMzYuMgoJCWM0LjYsNS4zLDEwLDUuNywxMCw1LjdjMCwwLDAsMCwwLDBjMC43LDEuMiwxLjUsMi40LDIuNCwzLjVjMC40LDAuNSwwLjgsMC45LDEuMiwxLjNjLTEuNyw0LjgsMC4yLDguOSwwLjIsOC45CgkJYzUuMiwwLjIsOC42LTIuMyw5LjMtMi44YzAuNSwwLjIsMSwwLjMsMS42LDAuNWMxLjYsMC40LDMuMiwwLjYsNC44LDAuN2MwLjQsMCwwLjgsMCwxLjIsMGwwLjIsMGwwLjEsMGwwLjMsMGwwLjMsMGMwLDAsMCwwLDAsMAoJCWMyLjQsMy41LDYuNyw0LDYuNyw0YzMuNC0zLjYsMy4yLTcuMiwzLjItNy4yYzAsMC0wLjEtMC4xLTAuMS0wLjFjMC43LTAuNSwxLjMtMSwxLjktMS41YzEuMi0xLjEsMi4zLTIuNCwzLjItMy43CgkJYzAuMS0wLjEsMC4yLTAuMywwLjItMC40YzMuNCwwLjIsNS45LTIuMSw1LjktMi4xYy0wLjYtNC0zLjEtNS43LTMuMS01LjdjMCwwLTAuMSwwLTAuMSwwYzAtMC4yLDAtMC41LDAuMS0wLjdjMC0wLjQsMC0wLjgsMC0xLjIKCQlsMC0wLjNsMC0wLjFsMC0wLjFjMC0wLjEsMC0wLjEsMC0wLjFsMC0wLjJsMC0wLjNjMC0wLjEsMC0wLjIsMC0wLjNjMC0wLjEsMC0wLjIsMC0wLjNsMC0wLjNsMC0wLjNjLTAuMS0wLjQtMC4xLTAuOC0wLjItMS4yCgkJYy0wLjQtMS41LTEtMy0xLjgtNC4zYy0wLjgtMS4zLTEuOC0yLjUtMi45LTMuNWMtMS4xLTEtMi40LTEuOC0zLjctMi40Yy0xLjMtMC42LTIuNy0xLTQuMS0xLjFjLTAuNy0wLjEtMS40LTAuMS0yLTAuMWwtMC4zLDAKCQlsLTAuMSwwYzAsMC0wLjEsMC0wLjEsMGwtMC4xLDBsLTAuMywwYy0wLjEsMC0wLjIsMC0wLjMsMGMtMC4zLDAtMC43LDAuMS0xLDAuMWMtMS40LDAuMy0yLjcsMC43LTMuOCwxLjQKCQljLTEuMSwwLjctMi4xLDEuNS0yLjksMi41Yy0wLjgsMS0xLjQsMi0xLjksMy4xYy0wLjQsMS4xLTAuNywyLjItMC43LDMuM2MwLDAuMywwLDAuNiwwLDAuOGMwLDAuMSwwLDAuMSwwLDAuMmwwLDAuMgoJCWMwLDAuMSwwLDAuMywwLDAuNGMwLjEsMC42LDAuMiwxLjEsMC4zLDEuNmMwLjMsMSwwLjgsMiwxLjQsMi44YzAuNiwwLjgsMS4zLDEuNSwyLjEsMmMwLjgsMC41LDEuNiwwLjksMi40LDEuMQoJCWMwLjgsMC4yLDEuNiwwLjMsMi4zLDAuM2MwLjEsMCwwLjIsMCwwLjMsMGMwLDAsMC4xLDAsMC4xLDBjMCwwLDAuMSwwLDAuMSwwYzAuMSwwLDAuMiwwLDAuMiwwYzAsMCwwLDAsMC4xLDBsMC4xLDAKCQljMCwwLDAuMSwwLDAuMSwwYzAuMSwwLDAuMiwwLDAuMywwYzAuMSwwLDAuMiwwLDAuMy0wLjFjMC4yLDAsMC4zLTAuMSwwLjUtMC4xYzAuMy0wLjEsMC42LTAuMiwwLjktMC40YzAuMy0wLjEsMC41LTAuMywwLjgtMC41CgkJYzAuMS0wLjEsMC4xLTAuMSwwLjItMC4yQzM2LDM4LjcsMzYsMzguMywzNS44LDM4TDM1LjgsMzh6Ii8+CjwvZz4KPC9zdmc+Cg==" alt="格拉法纳实验室" width="280" />

Grafana包含对Prometheus的内置支持。

添加数据源Grafana

  1. 单击顶部标题中的Grafana图标打开侧边菜单。
  2. Dashboards链接下的侧边菜单中,您应找到一个名为的链接Data Sources
  3. 单击+ Add data source顶部标题中的按钮。
  4. Prometheus从“ 类型”下拉列表中选择。

注意:如果您没有Data Sources在侧边菜单中看到该链接,则表示您当前的用户没有Admin当前组织的角色。

数据源选项

名称 描述
名称 数据源名称。这是您在面板和查询中引用数据源的方式。
默认 默认数据源意味着它将为新面板预先选择。
网址 你的Prometheus服务器的http协议,ip和端口(默认端口通常是9090)
访问 服务器(默认)=需要从Grafana后端/服务器访问URL,需要从浏览器访问Browser = URL。
基本认证 启用Prometheus数据源的基本身份验证。
用户 您的Prometheus用户的名称
密码 数据库用户的密码
刮伤间隔 这将用作Prometheus步骤查询参数的下限。默认值为15秒。

查询编辑器

通过单击标题>编辑(或在鼠标e悬停在面板上时按键)打开编辑模式下的图形。

 
名称 描述
查询表达式 Prometheus查询表达式,查看Prometheus文档
图例格式 使用名称或模式控制时间系列的名称。例如,{{hostname}}将替换为标签的标签值hostname
最小步骤 设置Prometheus步骤选项的下限。步骤控制Prometheus查询引擎执行范围查询时跳转的大小。遗憾的是,没有正式的prometheus文档链接到这个非常重要的选项。
解析度 控制步骤选项。小步骤可以创建高分辨率图形,但在较大的时间范围内可能会很慢,降低分辨率可以加快速度。1/2将尝试设置步骤选项,为每个其他像素生成1个数据点。值1/10将尝试设置步骤选项,以便每10个像素有一个数据点。
指标查找 在此输入字段中搜索度量标准名称。
格式为 在表格,时间序列或热图之间切换。表格格式仅适用于“表格”面板。热图格式适用于在热图面板上显示具有直方图类型的度量。在引擎盖下,它将累积直方图转换为常规,并按桶绑定排序系列。

注意:Grafana稍微修改查询的请求日期,以使它们与动态计算的步骤对齐。这可确保度量数据的一致显示,但可能会导致图表右边缘的数据间隙很小。

模板

您可以在其位置使用变量,而不是在度量标准查询中对服务器,应用程序和传感器名称等硬编码进行硬编码。变量显示为仪表板顶部的下拉选择框。这些下拉菜单可以轻松更改仪表板中显示的数据。

查看模板文档,了解模板功能和不同类型的模板变量。

查询变量

Query类型的变量允许您查询Prometheus以获取度量标准,标签或标签值的列表。Prometheus数据源插件提供了可在Query输入字段中使用的以下功能。

名称 描述
label _ names() 返回标签名称列表。
label _ values(label) 返回label每个指标中的标签值列表。
label _ values(metric,label) 返回label指定度量标准中的标签值列表。
度量(公制) 返回与指定metric正则表达式匹配的度量标准列表。
查询 _ 结果(查询) 返回一个Prometheus查询结果列表query

有关度量标准名称标签名称标签值的详细信息,请参阅Prometheus文档

使用区间和范围变量

支持$__range$__range_s并且$__range_ms只能从Grafana V5.3

可以在查询变量中使用一些全局内置变量; $__interval$__interval_ms$__range$__range_s$__range_ms,看到全球内置变量以获取更多信息。query_result当您需要过滤变量查询时,这些可以方便地与函数一起使用,因为label_values函数不支持查询。

确保将变量的refresh触发器设置为On Time Range Change在更改仪表板上的时间范围时获取正确的实例。

用法示例:

根据仪表板中显示的时间范围内的平均QPS,使用最繁忙的5个请求实例填充变量:

Query: query_result(topk(5, sum(rate(http_requests_total[$__range])) by (instance)))
Regex: /"([^"]+)"/

在仪表板中显示的时间范围内使用具有特定状态的实例填充变量,使用更精确的$__range_s

Query: query_result(max_over_time(<metric>[${__range_s}s]) != <state>)
Regex:

在查询中使用变量

有两种语法:

  • $<varname> 示例:rate(http_requests_total {job =〜“\ $ job”} [5m])
  • [[varname]] 示例:rate(http_requests_total {job =〜“[[job]]”} [5m])

为什么两种方式?第一种语法更易于读写,但不允许您在单词的中间使用变量。启用“ 多值”或“ 包含所有值”选项后,Grafana会将标签从纯文本转换为正则表达式兼容字符串。这意味着你必须使用=~而不是=

注释

注释允许您在图表上叠加丰富的事件信息。您可以通过仪表板菜单/注释视图添加注释查询。

Prometheus支持两种查询注释的方法。

  • 常规度量标准查询
  • 针对挂起和触发警报的Prometheus查询(有关详细信息,请参阅在运行时检查警报

步骤选项可用于限制从查询返回的事件数。

将Grafana指标纳入普罗米修斯

从4.6.0开始,Grafana在/metrics端点上公开了Prometheus的指标。我们还在Grafana中捆绑了一个仪表板,以便您可以更快地开始查看指标。您可以通过转到数据源编辑页面并单击仪表板选项卡来导入捆绑的仪表板。在那里你可以找到一个Grafana仪表板和一个Prometheus仪表板。导入并开始查看所有指标!

使用Provisioning配置数据源

现在可以使用Grafana的配置系统使用配置文件配置数据源。您可以在配置文档页面上阅读有关其工作原理以及可以为数据源设置的所有设置的更多信息

以下是此数据源的一些配置示例。

apiVersion: 1

datasources:
- name: Prometheus
type: prometheus
access: proxy
url: http://localhost:9090
 

在Grafana使用普罗米修斯的更多相关文章

  1. 普罗米修斯+grafana监控k8s

    其实现原理有点类似ELK.node-exporter组件负责收集节点上的metrics监控数据,并将数据推送给prometheus, prometheus负责存储这些数据,grafana将这些数据通过 ...

  2. 当ABAP遇见普罗米修斯

    Jerry每次在工作场合中同Prometheus(普罗米修斯)打交道时,都会"出戏",因为这个单词给我的第一印象,并不是用go语言实现的微服务监控利器,而是名导雷德利·斯科特(Ri ...

  3. 普罗米修斯Prometheus监控安装

    普罗米修斯Prometheus监控安装 架构: 服务端:192.168.0.204 客户端:192.168.0.206 环境准备:所有节点安装go 语言环境 rz go1.12.linux-amd64 ...

  4. 监控神器-普罗米修斯Prometheus的安装

    搬砖党的福音:普罗米修斯-监控神器 功能: 在业务层用作埋点系统 Prometheus支持多种语言(Go,java,python,ruby官方提供客户端,其他语言有第三方开源客户端).我们可以通过客户 ...

  5. 一步步教你用Prometheus搭建实时监控系统系列(一)——上帝之火,普罗米修斯的崛起

    上帝之火 本系列讲述的是开源实时监控告警解决方案Prometheus,这个单词很牛逼.每次我都能联想到带来上帝之火的希腊之神,普罗米修斯.而这个开源的logo也是火,个人挺喜欢这个logo的设计. 本 ...

  6. Prometheus普罗米修斯快速入门

    欢迎来到普罗米修斯! Prometheus是一个监控平台,通过从监控目标的抓取HTTP端点上获取指标. 本指南将展示如何使用和安装Promethues,配置和监视第一个资源.还将下载并安装导出器Exp ...

  7. (2012年旧文)纪念史蒂夫乔布斯---IT界的普罗米修斯

    谈苹果与乔布斯系列一  IT界的普罗米修斯 纪念PC界的先驱 史蒂夫乔布斯 2012-4-5 清明节,纪念IT时代的开创人—伟大的史蒂夫 乔布斯. 没有乔布斯,计算机还是属于一群科技人士的工具,没有漂 ...

  8. 记录一次k8s环境尝试过程(初始方案,现在已经做过很多完善,例如普罗米修斯)

    记录一次Team k8s环境搭建过程(初始方案,现在已经做过很多完善,例如普罗米修斯) span::selection, .CodeMirror-line > span > span::s ...

  9. 普罗米修斯!Ubuntu下prometheus监控软件安装使用

    *Prometheus* 是一个开源的服务监控系统和时间序列数据库 官方网站:prometheus.io 一.安装prometheus cd /usr/local/        #进入安装目录 wg ...

随机推荐

  1. XCOPY——目录复制命令

    XCOPY——目录复制命令 1.功能:复制指定的目录和目录下的所有文件连同目录结构. 2.类型:外部命令 3.格式:XCOPY [源盘:]〈源路径名〉[目标盘符:][目标路径名][/S][/V][/E ...

  2. 11.06水题Test

    11.06水题比赛 题目 描述 做法 \(BSOJ5150\) 求\(n\)个数两两之差的中位数 二分中位数,双指针判定\(\le x\)差值对数 \(BSOJ5151\) 求树的最大匹配和其个数 来 ...

  3. js json 排序

    /* json:需要排序的json key:排序项 */ function JsonSort(json, key) { //console.log(json); for (var j = 1, jl ...

  4. Wbbpack --3配置

    Wbbpack --3配置 什么是webpack webpack 是一个现代 JavaScript 应用程序的静态模块打包(modulebundler)当 webpack 处理应用程序时,它会递归地构 ...

  5. trutle库的使用基础

    turtle库的使用: 概括: turtle绘图体系:1969年诞生,主要用于程序设计入门 Python语言的标准库之一 入门级的图形绘制函数库 原理: turtle的原(wan)理(fa) (tur ...

  6. SpringCloud:学习Gateway网关拦截器的ServerWebExchange

    1.Gateway的拦截器 我们要在项目中实现一个拦截器,需要继承两个类:GlobalFilter, Ordered GlobalFilter:全局过滤拦截器,在gateway中已经有部分实现,具体参 ...

  7. vue使用案例,vue初始化,vue初始化方法,vue条件语句,vue在js里面添加元素调用vue方法

     <div id="main" > <button id='but1' type="button" v-on:click="save ...

  8. 油猴ajaxhook

    // ==UserScript== // @name ajaxHook // @namespace http://tampermonkey.net/ // @version 0.1 // @descr ...

  9. Google Kick Start 2019 C轮 第一题 Wiggle Walk 题解

    Google Kick Start 2019 C轮 第一题 Wiggle Walk 题解 题目地址:https://codingcompetitions.withgoogle.com/kickstar ...

  10. grpc使用记录(一) gRPC编译(mscv/gcc)

    目录 1.编译前的准备工作 2.Windows下使用VS2019编译 2.1.使用cmake生成VS2019解决方案 2.2.使用msbuild工具进行编译 3.linux下编译 3.1 CentO ...