{"id":3451,"date":"2017-09-27T00:00:00","date_gmt":"2017-09-27T00:00:00","guid":{"rendered":"https:\/\/azure.microsoft.com\/blog\/azure-log-analytics-meet-our-new-query-language-2"},"modified":"2025-06-25T09:00:45","modified_gmt":"2025-06-25T16:00:45","slug":"azure-log-analytics-meet-our-new-query-language-2","status":"publish","type":"post","link":"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-log-analytics-meet-our-new-query-language-2\/","title":{"rendered":"Azure Log Analytics \u2013 meet our new query language"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Azure Log Analytics has recently been enhanced to work with a new query language. The query language itself actually isn\u2019t new at all, and has been used extensively by Application Insights for some time. Recently, the language and the platform it operates on have been integrated into Log Analytics, which allows us to introduce a wealth of new capabilities, and a new portal designed for advanced analytics.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This post reviews some of the cool new features now supported. It\u2019s just the tip of the iceberg though, and you&#8217;re invited to also review the tutorials on our <a href=\"https:\/\/docs.loganalytics.io\/\" target=\"_blank\" rel=\"noopener\">language site<\/a> and our <a href=\"https:\/\/aka.ms\/AzureLogAnalyticsCommunity\" target=\"_blank\" rel=\"noopener\">Log Analytics community space<\/a>. The examples shown throughout the post can also be run in our Log Analytics <a href=\"https:\/\/portal.loganalytics.io\/demo\" target=\"_blank\" rel=\"noopener\">playground<\/a> \u2013 a free demo environment you can always use, no registration needed.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"pipe-away\">Pipe-away<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Queries collect data, stored in one or more tables. Check out this basic query:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>Event<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is as simple as you can get, but it&#8217;s still a valid query, that simply returns everything in the <i>Event<\/i> table. Grabbing every record in a table usually means way too many results though. When analyzing data, a common first step is to review just a bunch of records from a table, and plan how to zoom in on relevant data. This is easily done with \u201ctake\u201d:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>Event<br>\n| take 10<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is the general structure of queries \u2013 multiple elements separated by pipes. The output of the first element (i.e the entire <i>Event<\/i> table) is the input of the next one. In this case, the final query output will be 10 records from the <i>Event<\/i> table. After reviewing them, we can decide how to make our query more specific. Often, we will use <i>where<\/i> to filter by a specific condition, such as this:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>Event<br>\n| where EventLevelName == \"Error\"<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This query will return all records in the table, where EventLevelName equals \u201cError\u201d (case sensitive).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Looks like our query still returns a lot of records though. To make sense of all that data, we can use <i>summarize<\/i>. Summarize identifies groups of records by a common value, and can also apply aggregations to each group.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>Event<br>\n| where EventLevelName == \"Error\"<br>\n| summarize count() by Computer <\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This example returns the number of <i>Events<\/i> records marked as Error, grouped by computer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/portal.loganalytics.io\/Demo?q=H4sIAAAAAAAAA3MtS80rUeCqUSjPSC1KVXAFcX1Sy1Jz%2FBJzUxVsbRWUXIuK8ouUQEqKS3NzE4syq1IVkvNL80o0NBWSKhWc83MLSktSi7gALzj5wEoAAAA%3D&amp;timespan=PT24H\" target=\"_blank\" rel=\"noopener\">Try it out<\/a> on our playground!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"search\">Search<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Sometimes we need to search across all our data, instead of restricting the query to a specific table. For this type of query, use the \u201c<i>search<\/i>\u201d keyword:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>search \"212.92.108.214\"<br>\n| where TimeGenerated &gt; ago(1h)<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The above example searches all records from the last hour, that contain a specific IP address.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Scanning all data could take a bit longer to run. To search for a term across a set of tables, scope the search this way:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>search in (ConfigurationData, ApplicationInsights) \"logon\" or \"login\"<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This example searches only the <i>ConfigurationData<\/i> and <i>ApplicationInsights<\/i> tables for records that contain the terms \u201clogon\u201d or \u201clogin\u201d.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Note that search terms are by default case insensitive. Search queries have many variants, you can read more about them in our <a href=\"https:\/\/docs.loganalytics.io\/docs\/Language-Reference\/Tabular-operators\/search-operator\">tabular operators<\/a>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"query-time-custom-fields\">Query-time custom fields<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">We often find that we want to calculate custom fields on the fly, and use them in our analysis. One way to do it is to assign our own name to automatically-created columns, such as <i>ErrorsCount<\/i>:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>Event<br>\n| where EventLevelName == \"Error\"<br>\n| summarize ErrorsCount=count() by Computer<br>\n| sort by ErrorsCount<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But adding fields does not require using <i>summarize<\/i>. The easiest way to do it is with <i>extend:<\/i><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>Event<br>\n| where TimeGenerated &gt; datetime(2017-09-16)<br>\n| where EventLevelName == \"Error\"<br>\n| extend PST_time = TimeGenerated-8h<br>\n| where PST_time between (datetime(2017-09-17T04:00:00) .. datetime(2017-09-18T04:00:00))<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This example calculates <i>PST_time<\/i> which is based on <i>TimeGenerated<\/i>, but adapted from UTC to PST time zone. The query uses the new field to filter only records created between 2017-09-17 at 4 AM and 2017-09-18 at 4 AM, PST time.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A similar operator is <i>project<\/i>. Instead of adding the calculated field to the results set, <i>project<\/i> keeps only the projected fields. In this example, the results will have only four columns:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>Event<br>\n| where EventLevelName == \"Error\"<br>\n| project TimeGenerated, Computer, EventID, RenderedDescription<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/portal.loganalytics.io\/Demo?q=H4sIAAAAAAAAAyWMOwqAMBAF%2B5xiSZ0rWGkQQSzEC4h5YMR8WFdtPLwRy4GZsReiqIfuFQyyH%2FW4sA9zAFUVacucWFNRMqcNi9DkA1pE8CxwhuoU8ilg89ddY2hEdGXnGhwL%2Byw%2BRfUCF5avw2kAAAA%3D&amp;timespan=PT24H\" target=\"_blank\" rel=\"noopener\">Try it out<\/a> on our playground.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A complementary operator is <i>Project-away<\/i>, which specifies columns to remove from the result set.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"joins\">Joins<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Join merges the records of two data sets by matching values of the specified columns. This allows richer analysis, that relies on the correlation between different data sources.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The following example joins records from two tables \u2013 <i>Update<\/i> and <i>SecurityEvent<\/i>:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>Update<br>\n| where TimeGenerated &gt; ago(1d)<br>\n| where Classification == \"Security Updates\" and UpdateState == \"Needed\"<br>\n| summarize missing_updates=makeset(Title) by Computer<br>\n| join (<br>\nSecurityEvent<br>\n| where TimeGenerated &gt; ago(1h)<br>\n| summarize count() by Computer<br>\n) on Computer<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Let\u2019s review the two data sets being matched. The first data set is:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>Update<br>\n| where TimeGenerated &gt; ago(1d)<br>\n| where Classification == \"Security Updates\" and UpdateState == \"Needed\"<br>\n| summarize missing_updates=makeset(Title) by Computer<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This takes <i>Update<\/i> records from the last day, that describe needed security updates. It then summarizes the set of required updates per computer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The second data set is:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>SecurityEvent<br>\n| where TimeGenerated &gt; ago(1h)<br>\n| summarize count() by Computer<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This counts how many of <i>SecurityEvent<\/i> records were created in the last hour per computer.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The common field we matched on is <i>Computer<\/i>, so eventually we get a list of computers that each has a list of missing security updates, and the total number of security events in the last hour.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2017\/09\/68d200b9-31bc-4208-9c73-c18619464d2e.webp\" alt=\"join\" title=\"join\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The default visualization for most queries is a table. To visualize the data graphically, add &#8220;<em>| render barchart<\/em>\u201d at the end of the query, or select the <em>Chart<\/em> button shown above the results. The outcome can help us decide how to manage our next updates:<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2017\/09\/a50cbd02-7819-4587-8ab4-c8cc5b75952e.webp\" alt=\"barchart\" title=\"barchart\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">We can see that the most required update is <em>2017-09 Cumulative Update for Windows Server<\/em> and that the 1<sup>st<\/sup> computer to handle should probably be <em>ContosoAzADDS1.ContosoRetail.com<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Joins have many flavors &#8211; inner, outer, semi, etc. These flavors define how matching should be performed and what the output should be. To learn more on joins, review our <a href=\"https:\/\/go.microsoft.com\/fwlink\/?linkid=858789\" target=\"_blank\" rel=\"noopener\">joins tutorial<\/a>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"next-steps\">Next steps<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Learn more on how to analyze your data:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"wp-block-list-item\"><a href=\"https:\/\/go.microsoft.com\/fwlink\/?linkid=844764\" target=\"_blank\" rel=\"noopener\">Query language doc site<\/a><\/li>\n\n\n\n<li class=\"wp-block-list-item\"><a href=\"https:\/\/go.microsoft.com\/fwlink\/?linkid=856078\" target=\"_blank\" rel=\"noopener\">Getting started with queries<\/a><\/li>\n\n\n\n<li class=\"wp-block-list-item\"><a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/log-analytics\/log-analytics-log-search-upgrade\" target=\"_blank\" rel=\"noopener\">Upgrading to the new query language<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>This post reviews some of the cool new features supported by the new Azure Log Analytics query language. To learn more on the query language check out the tutorials on our language site and our Log Analytics community space.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ms_queue_id":[],"ep_exclude_from_search":false,"_classifai_error":"","_classifai_text_to_speech_error":"","_alt_title":"","footnotes":"","msx_community_cta_settings":[]},"categories":[1456,1482],"tags":[],"audience":[3054,3055,3053,3056],"content-type":[1511],"product":[1533],"tech-community":[],"topic":[],"coauthors":[670],"class_list":["post-3451","post","type-post","status-publish","format-standard","hentry","category-devops","category-management-and-governance","audience-business-decision-makers","audience-developers","audience-it-decision-makers","audience-it-implementors","content-type-best-practices","product-azure-monitor","review-flag-1680286580-543","review-flag-1-1680286581-825","review-flag-4-1680286581-250","review-flag-alway-1680286580-106","review-flag-free-1680286579-836","review-flag-new-1680286579-546"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Azure Log Analytics \u2013 meet our new query language | Microsoft Azure Blog<\/title>\n<meta name=\"description\" content=\"This post reviews some of the cool new features supported by the new Azure Log Analytics query language. To learn more on the query language check out the tutorials on our language site and our Log Analytics community space.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-log-analytics-meet-our-new-query-language-2\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Azure Log Analytics \u2013 meet our new query language | Microsoft Azure Blog\" \/>\n<meta property=\"og:description\" content=\"This post reviews some of the cool new features supported by the new Azure Log Analytics query language. To learn more on the query language check out the tutorials on our language site and our Log Analytics community space.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-log-analytics-meet-our-new-query-language-2\/\" \/>\n<meta property=\"og:site_name\" content=\"Microsoft Azure Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/microsoftazure\" \/>\n<meta property=\"article:published_time\" content=\"2017-09-27T00:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-25T16:00:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2017\/09\/68d200b9-31bc-4208-9c73-c18619464d2e.webp\" \/>\n<meta name=\"author\" content=\"Noa Kuperberg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@azure\" \/>\n<meta name=\"twitter:site\" content=\"@azure\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Noa Kuperberg\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-log-analytics-meet-our-new-query-language-2\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-log-analytics-meet-our-new-query-language-2\/\"},\"author\":[{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/author\/noa-kuperberg\/\",\"@type\":\"Person\",\"@name\":\"Noa Kuperberg\"}],\"headline\":\"Azure Log Analytics \u2013 meet our new query language\",\"datePublished\":\"2017-09-27T00:00:00+00:00\",\"dateModified\":\"2025-06-25T16:00:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-log-analytics-meet-our-new-query-language-2\/\"},\"wordCount\":891,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-log-analytics-meet-our-new-query-language-2\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2017\/09\/68d200b9-31bc-4208-9c73-c18619464d2e.webp\",\"articleSection\":[\"DevOps\",\"Management and governance\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-log-analytics-meet-our-new-query-language-2\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-log-analytics-meet-our-new-query-language-2\/\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-log-analytics-meet-our-new-query-language-2\/\",\"name\":\"Azure Log Analytics \u2013 meet our new query language | Microsoft Azure Blog\",\"isPartOf\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-log-analytics-meet-our-new-query-language-2\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-log-analytics-meet-our-new-query-language-2\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2017\/09\/68d200b9-31bc-4208-9c73-c18619464d2e.webp\",\"datePublished\":\"2017-09-27T00:00:00+00:00\",\"dateModified\":\"2025-06-25T16:00:45+00:00\",\"description\":\"This post reviews some of the cool new features supported by the new Azure Log Analytics query language. To learn more on the query language check out the tutorials on our language site and our Log Analytics community space.\",\"breadcrumb\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-log-analytics-meet-our-new-query-language-2\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-log-analytics-meet-our-new-query-language-2\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-log-analytics-meet-our-new-query-language-2\/#primaryimage\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2017\/09\/68d200b9-31bc-4208-9c73-c18619464d2e.webp\",\"contentUrl\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2017\/09\/68d200b9-31bc-4208-9c73-c18619464d2e.webp\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-log-analytics-meet-our-new-query-language-2\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Blog home\",\"item\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"DevOps\",\"item\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/category\/devops\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Azure Log Analytics \u2013 meet our new query language\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#website\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/\",\"name\":\"Microsoft Azure Blog\",\"description\":\"Get the latest Azure news, updates, and announcements from the Azure blog. From product updates to hot topics, hear from the Azure experts.\",\"publisher\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization\",\"name\":\"Microsoft Azure Blog\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2024\/06\/microsoft_logo.webp\",\"contentUrl\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2024\/06\/microsoft_logo.webp\",\"width\":512,\"height\":512,\"caption\":\"Microsoft Azure Blog\"},\"image\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/microsoftazure\",\"https:\/\/x.com\/azure\",\"https:\/\/www.instagram.com\/microsoftdeveloper\/\",\"https:\/\/www.linkedin.com\/company\/16188386\",\"https:\/\/www.youtube.com\/user\/windowsazure\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/person\/c702e5edd662b328b49b7e1180cab117\",\"name\":\"shakir\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g7664e653ea371ce16eaf75e9fa8952c4\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g\",\"caption\":\"shakir\"},\"sameAs\":[\"https:\/\/azure.microsoft.com\"],\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/author\/shakir\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Azure Log Analytics \u2013 meet our new query language | Microsoft Azure Blog","description":"This post reviews some of the cool new features supported by the new Azure Log Analytics query language. To learn more on the query language check out the tutorials on our language site and our Log Analytics community space.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-log-analytics-meet-our-new-query-language-2\/","og_locale":"en_US","og_type":"article","og_title":"Azure Log Analytics \u2013 meet our new query language | Microsoft Azure Blog","og_description":"This post reviews some of the cool new features supported by the new Azure Log Analytics query language. To learn more on the query language check out the tutorials on our language site and our Log Analytics community space.","og_url":"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-log-analytics-meet-our-new-query-language-2\/","og_site_name":"Microsoft Azure Blog","article_publisher":"https:\/\/www.facebook.com\/microsoftazure","article_published_time":"2017-09-27T00:00:00+00:00","article_modified_time":"2025-06-25T16:00:45+00:00","og_image":[{"url":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2017\/09\/68d200b9-31bc-4208-9c73-c18619464d2e.webp","type":"","width":"","height":""}],"author":"Noa Kuperberg","twitter_card":"summary_large_image","twitter_creator":"@azure","twitter_site":"@azure","twitter_misc":{"Written by":"Noa Kuperberg","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-log-analytics-meet-our-new-query-language-2\/#article","isPartOf":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-log-analytics-meet-our-new-query-language-2\/"},"author":[{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/author\/noa-kuperberg\/","@type":"Person","@name":"Noa Kuperberg"}],"headline":"Azure Log Analytics \u2013 meet our new query language","datePublished":"2017-09-27T00:00:00+00:00","dateModified":"2025-06-25T16:00:45+00:00","mainEntityOfPage":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-log-analytics-meet-our-new-query-language-2\/"},"wordCount":891,"commentCount":0,"publisher":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization"},"image":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-log-analytics-meet-our-new-query-language-2\/#primaryimage"},"thumbnailUrl":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2017\/09\/68d200b9-31bc-4208-9c73-c18619464d2e.webp","articleSection":["DevOps","Management and governance"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/azure.microsoft.com\/en-us\/blog\/azure-log-analytics-meet-our-new-query-language-2\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-log-analytics-meet-our-new-query-language-2\/","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-log-analytics-meet-our-new-query-language-2\/","name":"Azure Log Analytics \u2013 meet our new query language | Microsoft Azure Blog","isPartOf":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-log-analytics-meet-our-new-query-language-2\/#primaryimage"},"image":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-log-analytics-meet-our-new-query-language-2\/#primaryimage"},"thumbnailUrl":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2017\/09\/68d200b9-31bc-4208-9c73-c18619464d2e.webp","datePublished":"2017-09-27T00:00:00+00:00","dateModified":"2025-06-25T16:00:45+00:00","description":"This post reviews some of the cool new features supported by the new Azure Log Analytics query language. To learn more on the query language check out the tutorials on our language site and our Log Analytics community space.","breadcrumb":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-log-analytics-meet-our-new-query-language-2\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/azure.microsoft.com\/en-us\/blog\/azure-log-analytics-meet-our-new-query-language-2\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-log-analytics-meet-our-new-query-language-2\/#primaryimage","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2017\/09\/68d200b9-31bc-4208-9c73-c18619464d2e.webp","contentUrl":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2017\/09\/68d200b9-31bc-4208-9c73-c18619464d2e.webp"},{"@type":"BreadcrumbList","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/azure-log-analytics-meet-our-new-query-language-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog home","item":"https:\/\/azure.microsoft.com\/en-us\/blog\/"},{"@type":"ListItem","position":2,"name":"DevOps","item":"https:\/\/azure.microsoft.com\/en-us\/blog\/category\/devops\/"},{"@type":"ListItem","position":3,"name":"Azure Log Analytics \u2013 meet our new query language"}]},{"@type":"WebSite","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#website","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/","name":"Microsoft Azure Blog","description":"Get the latest Azure news, updates, and announcements from the Azure blog. From product updates to hot topics, hear from the Azure experts.","publisher":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/azure.microsoft.com\/en-us\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization","name":"Microsoft Azure Blog","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2024\/06\/microsoft_logo.webp","contentUrl":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2024\/06\/microsoft_logo.webp","width":512,"height":512,"caption":"Microsoft Azure Blog"},"image":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/microsoftazure","https:\/\/x.com\/azure","https:\/\/www.instagram.com\/microsoftdeveloper\/","https:\/\/www.linkedin.com\/company\/16188386","https:\/\/www.youtube.com\/user\/windowsazure"]},{"@type":"Person","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/person\/c702e5edd662b328b49b7e1180cab117","name":"shakir","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g7664e653ea371ce16eaf75e9fa8952c4","url":"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g","caption":"shakir"},"sameAs":["https:\/\/azure.microsoft.com"],"url":"https:\/\/azure.microsoft.com\/en-us\/blog\/author\/shakir\/"}]}},"msxcm_display_generated_audio":false,"msxcm_animated_featured_image":null,"distributor_meta":false,"distributor_terms":false,"distributor_media":false,"distributor_original_site_name":"Microsoft Azure Blog","distributor_original_site_url":"https:\/\/azure.microsoft.com\/en-us\/blog","push-errors":false,"_links":{"self":[{"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/posts\/3451","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/comments?post=3451"}],"version-history":[{"count":1,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/posts\/3451\/revisions"}],"predecessor-version":[{"id":43429,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/posts\/3451\/revisions\/43429"}],"wp:attachment":[{"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/media?parent=3451"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/categories?post=3451"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/tags?post=3451"},{"taxonomy":"audience","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/audience?post=3451"},{"taxonomy":"content-type","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/content-type?post=3451"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/product?post=3451"},{"taxonomy":"tech-community","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/tech-community?post=3451"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/topic?post=3451"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/coauthors?post=3451"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}