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从“ 类型”下拉列表中选择。

数据源选项

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

查询编辑器

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

在Grafana使用普罗米修斯-LMLPHP

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

模板

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

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

查询变量

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

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

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

使用区间和范围变量

可以在查询变量中使用一些全局内置变量; $__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
 
05-11 15:36