The I/O Registry is a dynamic database that describes a collection of “live” objects (nubs or drivers) and tracks the provider-client relationships between them. When hardware is added or removed from the system, the Registry is immediately updated to reflect the new configuration of devices. A dynamic part of the I/O Kit, the Registry is not stored on disk or archived between boots. Instead, it is built at each system boot and resides in memory.
The I/O Registry is made accessible from user space by APIs in the I/O Kit framework. These APIs include powerful search mechanisms that allow you to search the Registry for an object with particular characteristics. You can also view the current state of the Registry on your computer using applications provided with the developer version of OS X.
Kusto.Explorer is a rich desktop application that enables you to explore your data using the Kusto Query Language in an easy-to-use user interface. This overview explains how to get started with setting up your Kusto.Explorer and explains the user interface you will use. With Kusto.Explorer, you can: Query your data. Search your data across tables. Service Bus Explorer allows users to connect to a Service Bus namespace and administer messaging entities. Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter. Copied to clipboard. Overview Version History Q & A Rating & Review.
This chapter describes the I/O Registry architecture and the planes the Registry uses to represent relationships between objects. It also provides an overview of device matching and introduces applications that allow you to browse the Registry.
It is most useful to think of the I/O Registry as a tree: Each object is a node that descends from a parent node and has zero or more child nodes. The Registry follows the definition of a tree in nearly all respects, with the exception of a small minority of nodes that have more than one parent. The primary example of this situation is a RAID disk controller where several disks are harnessed together to appear as a single volume. Exceptional cases aside, however, viewing the Registry as a tree will help you visualize how it is constructed and updated.
At boot time, the I/O Kit registers a nub for the Platform Expert, a driver object for a particular motherboard that knows the type of platform the system is running on. This nub serves as the root of the I/O Registry tree. The Platform Expert nub then loads the correct driver for that platform, which becomes the child node of the root. The Platform driver discovers the buses that are on the system and it registers a nub for each one. The tree continues to grow as the I/O Kit matches each nub to its appropriate bus driver, and as each bus driver discovers the devices connected to it and matches drivers to them.
When a device is discovered, the I/O Kit requests a list of all drivers of the device’s class type from another dynamic database, the I/O Catalog. Whereas the I/O Registry maintains the collection of objects active in the currently running system, the I/O Catalog maintains the collection of available drivers. This is the first step in a three-step process known as driver matching that is described in Driver and Device Matching
Information such as class type is kept in the driver’s information property list, a file containing XML-structured property information. The property list describes a driver’s contents, settings, and requirements in the form of a dictionary of key-value pairs. When read into the system, this information is converted into OS containers such as dictionaries, arrays, and other types. The I/O Kit uses this list in driver matching; a user application can search the I/O Registry for objects with specific properties in a process known as device matching. You can also view the property lists of your computer’s currently loaded drivers using I/O Registry Explorer, an application that displays the Registry.
Keeping the tree-like structure of the I/O Registry in mind, now visualize each node extending into the third dimension like a column. The two-dimensional Registry tree, with the Platform Expert nub at its root, is now visible on a plane that cuts perpendicularly through these columns. The I/O Kit defines a number of such planes (you can think of them as a set of parallel planes cutting through the columns at different levels). See Figure 3-1 for an illustration of this structure.
There are six planes defined in the I/O Registry:
Service
Audio
Power
Device Tree
FireWire
USB
Each plane expresses a different provider-client relationship between objects in the I/O Registry by showing only those connections that exist in that relationship. The most general is the Service plane which displays the objects in the same hierarchy in which they are attached during Registry construction. Every object in the Registry is a client of the services provided by its parent, so every object’s connection to its ancestor in the Registry tree is visible on the Service plane.
The other planes show more specific relationships:
The Audio plane provides a representation of the audio signal chain that Core Audio framework and its plug-ins use to discover information about the audio signal paths between the system’s audio devices.
The Power plane shows the power interdependencies between I/O Registry objects, allowing you to trace the flow of power from provider to client and discover which objects might be affected if a particular device is powered down.
The Device Tree plane represents the Open Firmware device hierarchy.
The FireWire and USB planes each represent the internal hierarchies defined by those standards.
It is important to remember the following points about planes in the I/O Registry:
All I/O Registry objects exist on all planes, but on any individual plane, only those objects connected by the relationship defined by that plane are visible.
A driver does not get attached to the Registry on any one particular plane. Instead it may participate in a plane’s connections if its provider-client relationships with other objects fit that plane’s definition.
The developer version of OS X provides an application called the I/O Registry Explorer that you can use to examine the configuration of devices on your computer. I/O Registry Explorer provides a graphical representation of the I/O Registry tree. By default, it displays the Service plane, but you can choose to examine any plane. The command-line equivalent, ioreg
, displays the tree in a Terminal window. This tool has the advantage of allowing you to cut and paste sections of the tree if, for example, you want to send that information in an email message. You can get a complete description of the usage of ioreg
by typing man ioreg
at the shell prompt in the Terminal application.
When you open I/O Registry Explorer, a divided window appears with I/O Registry objects in the upper right, the six planes in the upper left, and the property list of the selected object in the lower half of the window. An object followed by a disclosure triangle indicates that it is a parent node. You can traverse the I/O Registry tree by clicking a parent node and dragging the scroller to the right to display its children. Figure 3-2 shows an example of a property list in the I/O Registry Explorer window.
Commands in the Tools menu help you search the I/O Registry and examine its contents:
Dump Registry Dictionary to Output places the I/O Registry contents into the console log (viewable through the Console application in /Applications/Utilities
) if the I/O Registry Explorer was opened from the Finder.
Inspector displays the property list of the currently selected object in ASCII form. Selecting a particular property in the main window causes its value to be displayed in the Inspector window.
Force Registry Update updates I/O Registry Explorer’s picture of the I/O Registry to reflect any changes that may have occurred since you first opened the application.
Find performs a case insensitive search on your input string and, if successful, displays the path to the occurrence of the string with object names separated by colons.
Copyright © 2001, 2014 Apple Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2014-04-09
-->Kusto.Explorer is a rich desktop application that enables you to explore your data using the Kusto Query Language in an easy-to-use user interface. This overview explains how to get started with setting up your Kusto.Explorer and explains the user interface you will use.
With Kusto.Explorer, you can:
Download and install the Kusto.Explorer tool from:
Instead, access your Kusto cluster with your browser at:https://<your_cluster>.<region>.kusto.windows.net.
Replace <your_cluster> and <region> with your Azure Data Explorer cluster name and deployment region.
If you use Chrome as your default browser, make sure to install the ClickOnce extension for Chrome:
The Kusto.Explorer user interface is designed with a layout based on tabs and panels, similar to that of other Microsoft products:
Kusto.Explorer Menu panel includes the following tabs:
The Home tab shows the most recently used functions, divided into sections:
Menu | Behavior |
---|---|
Mode dropdown |
|
New Tab | Opens a new tab for querying Kusto |
Menu | Behavior |
---|---|
Data To Clipboard | Exports Query and data set to a clipboard. If a chart is presented, it exports the chart as bitmap |
Result To Clipboard | Exports the data set to a clipboard. If a chart is presented, it exports the chart as bitmap |
Query to Clipboard | Exports the Query to a clipboard |
Menu | Behavior |
---|---|
Area chart | Displays an area chart in which the X-axis is the first column (must be numeric). All numeric columns are mapped to different series (Y-axis) |
Column Chart | Displays a column chart where all numeric columns are mapped to different series (Y-axis). The text column before numeric is the X-axis (can be controlled in the UI) |
Bar Chart | Displays a bar chart where all numeric columns are mapped to different series (X-axis). The text column before numeric is the Y-axis (can be controlled in the UI) |
Stacked Area chart | Displays a stacked area chart in which the X-axis is the first column (must be numeric). All numeric columns are mapped to different series (Y-axis) |
Timeline Chart | Displays a time chart in which the X-axis is the first column (must be datetime). All numeric columns are mapped to different series (Y-axis). |
Line Chart | Displays a line chart in which the X-axis is the first column (must be numeric). All numeric columns are mapped to different series (Y-axis). |
Anomaly Chart | Similar to timechart, but finds anomalies in time series data, using the machine learning anomalies algorithm. For anomaly detection, Kusto.Explorer uses the series_decompose_anomalies function. |
Pie Chart | Displays a pie chart in which the color-axis is the first column. The theta-axis (must be a measure, converted to percent) is the second column. |
Time Ladder | Displays a ladder chart in which the X-axis is the last two columns (must be datetime). The Y-axis is a composite of the other columns. |
Scatter Chart | Displays a point graph in which the X-axis is the first column (must be numeric). All numeric columns are mapped to different series (Y-axis). |
Pivot Chart | Displays a pivot table and pivot chart that gives the full flexibility of selecting data, columns, rows, and various chart types. |
Time Pivot | Interactive navigation over the events time-line (pivoting on time axis) |
Note
Anomaly Chart:The algorithm expects timeseries data, which consists of two columns:
Menu | Behavior |
---|---|
Full View Mode | Maximizes the work space by hiding the ribbon menu and Connection Panel. Exit Full View Mode by selecting Home > Full View Mode, or by pressing F11. |
Hide Empty Columns | Removes empty columns from the data grid |
Collapse Singular Columns | Collapses columns with singular values |
Explore Column Values | Shows column values distribution |
Increase Font | Increases the font size of the query tab and of the results data grid |
Decrease Font | Decreases the font size of the query tab and of the results data grid |
Note
Data View Settings:
Kusto.Explorer keeps track of what settings are used per unique set of columns. When columns are reordered or removed, the data view is saved and will be reused whenever the data with the same columns is retrieved. To reset the view to its defaults, in the View tab, select Reset View.
Menu | Behavior |
---|---|
---------Query Script--------- | |
New Tab | Opens a new tab window for querying Kusto |
Open File | Loads data from a *.kql file to the active script panel |
Save To File | Saves the content of the active script panel to *.kql file |
Close Tab | Closes the current tab window |
---------Save Data--------- | |
Data To CSV | Exports data to a CSV (comma-separated-values) file |
Data To JSON | Exports data to a JSON formatted file |
Data To Excel | Exports data to an XLSX (Excel) file |
Data To Text | Exports data to a TXT (text) file |
Data To KQL Script | Exports Query to a script file |
Data To Results | Exports Query and data to a Results (QRES) file |
Run Query Into CSV | Runs a query and saves the results to a local CSV file |
---------Load Data--------- | |
From Results | Loads Query and data from a Results (QRES) file |
---------Clipboard--------- | |
Query and Results To Clipboard | Exports Query and data set to a clipboard. If a chart is presented, it exports the chart as a bitmap |
Result To Clipboard | Exports data set to a clipboard. If a chart is presented, it exports the chart as a bitmap |
Query to Clipboard | Exports the Query to a clipboard |
---------Results--------- | |
Clear results cache | Clears cached results of previously executed queries |
Menu | Behavior |
---|---|
---------Groups--------- | |
Add Group | Adds a new Kusto Server group |
Rename Group | Renames the existing Kusto Server group |
Remove Group | Removes the existing Kusto Server group |
---------Clusters--------- | |
Import Connections | Imports connections from a file specifying connections |
Export Connections | Exports connections to a file |
Add Connection | Adds a new Kusto Server connection |
Edit Connection | Opens a dialog for Kusto Server connection properties editing |
Remove Connection | Removes the existing connection to Kusto Server |
Refresh | Refreshes properties of a Kusto server connection |
---------Security--------- | |
Inspect Your ADD Principal | Shows currents active user details |
Sign-out From AAD | Signs-out the current user from the connection to AAD |
---------Data Scope--------- | |
Caching scope |
|
DateTime Column | Name of column which may be used for time pre-filter |
Time Filter | Value of time pre-filter |
Menu | Behavior |
---|---|
---------Appearance--------- | |
Full View Mode | Maximizes the work space by hiding the ribbon menu and Connection Panel |
Increase Font | Increases the font size of the query tab and of the results data grid |
Decrease Font | Decreases the font size of the query tab and of the results data grid |
Reset Layout | Resets the layout of the tool's docking controls and windows |
Rename Document Tab | Rename the selected tab |
---------Data View--------- | |
Reset View | Resets data view settings to its defaults |
Explore Column Values | Shows column values distribution |
Focus on Query Statistics | Changes the focus to query statistics instead of query results upon query completion |
Hide Duplicates | Toggles removal of the duplicate rows from the query results |
Hide Empty Columns | Toggles removal of empty columns from the query results |
Collapse Singular Columns | Toggles collapsing columns with singular value |
---------Data Filtering--------- | |
Filter Rows In Search | Toggles the option to show only matching rows in query results search (Ctrl+F) |
---------Visualizations--------- | |
Visualizations | See Visualizations, above. |
Note
Kusto.Explorer keeps track of the settings used per unique set of columns. When columns are reordered or removed, the data view is saved and will be reused whenever the data with the same columns is retrieved. To reset the view to its defaults, in the View tab, select Reset View.
Menu | Behavior |
---|---|
---------IntelliSense--------- | |
Enable IntelliSense | Enables and disables IntelliSense on the Script Panel |
---------Analyze--------- | |
Query Analyzer | Launches the Query Analyzer tool |
Query Checker | Analyzes the current query and outputs a set of applicable improvement recommendations |
Calculator | Launches the calculator |
---------Analytics--------- | |
Analytical Reports | Opens a dashboard with multiple pre-built reports for data analysis |
---------Translate--------- | |
Query to Power BI | Translates a query to a format suitable for using in Power BI |
---------Options--------- | |
Reset Options | Sets application settings to default values |
Options | Opens a tool for configuring application settings. Learn more about Kusto.Explorer options. |
Menu | Behavior |
---|---|
---------Monitor--------- | |
Cluster Diagnostics | Shows a health summary for the Server Group currently selected in Connections Panel |
Latest data: All tables | Shows a summary of the latest data in all tables of the currently selected database |
Latest data: Selected table | Shows in the status bar the latest data in the selected table |
Menu | Behavior |
---|---|
---------Authorized Principals--------- | |
Manage Cluster Authorized Principals | Enables managing a cluster's principals for authorized users |
Manage Database Authorized Principals | Enables managing a database's principals for authorized users |
Manage Table Authorized Principals | Enables managing a table's principals for authorized users |
Manage Function Authorized Principals | Enables managing a function's principals for authorized users |
Menu | Behavior |
---|---|
---------Documentation--------- | |
Help | Opens a link to the Kusto online documentation |
What's new | Opens a document that lists all Kusto.Explorer changes |
Report Issue | Opens a dialog with two options:
|
Suggest Feature | Opens a link to the Kusto feedback forum |
Check Updates | Checks if there are updates to your version of Kusto.Explorer |
The Connections pane shows all the configured cluster connections. For each cluster the databases, tables, and attributes (columns)that they store are shown. Select items (which sets an implicit contextfor the search/query in the main panel), or double-click items to copy the name to the search/query panel.
If the actual schema is large (such as a database with hundreds of tables), you can search it by pressing CTRL+F and entering asubstring (case-insensitive) of the entity name you're looking for.
Kusto.Explorer supports controlling the Connection panel from the query window, which is useful for scripts. For example, you can start a script file with a command that instructs Kusto.Explorer to connect to the cluster/database whose data is being queried by the script, by using the following syntax:
Run each line using F5
, or similar.
The default security model for new connections isAAD-Federated security. Authentication is done through theAzure Active Directory using the default AAD user experience.
If you need finer control over the authentication parameters, you can expand the'Advanced: Connection Strings' edit box and provide a validKusto connection string value.
For example, users with a presence inmultiple AAD tenants sometimes need to use a particular 'projection'of their identities to a specific AAD tenant. Do this byproviding a connection string, such as the one below (replace words IN CAPITALS with specific values):
AAD_TENANT_OF_CLUSTER
is a domain name or AAD tenant ID (a GUID) of the AAD tenant in which the cluster is hosted. This is usually the domain name of the organization that owns the cluster, such as contoso.com
.user@example.com
).Note
The domain name of the user is not necessarily the same as that of the tenant hosting the cluster.
You might find that using keyboard shortcuts enables you to perform operations faster than with the mouse. Take a look at this list of Kusto.Explorer keyboard shortcuts to learn more.
Kusto.Explorer tries to interpret the severity or verbosity level of each row in the results panel and color them accordingly. It does this by matching the distinct values of each column with a set of known patterns ('Warning', 'Error', and so on).
To modify the output color scheme, or turn this behavior off, from the Tools menu, select Options > Results Viewer > Verbosity color scheme.
Excel color scheme legend | Vivid color scheme legend |
---|
Learn more about working with Kusto.Explorer:
Learn more about Kusto.Explorer tools and utilities: