Determining metrics including resource spending for digital services

The system addresses the challenge of calculating resource expenditures for digital services by using ServiceNow tools to discover and map configuration items, enabling precise cost attribution and optimization recommendations.

JP2026516592APending Publication Date: 2026-05-26SERVICENOW INC
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
SERVICENOW INC
Filing Date
2024-03-28
Publication Date
2026-05-26

AI Technical Summary

Technical Problem

Enterprise customers face challenges in determining resource expenditures for digital services, particularly at the service level, as existing technologies struggle to allocate costs among shared resources and provide metrics for individual applications or products.

Method used

A system and process utilizing ServiceNow's Cloud Discovery, Service Mapping, and Cloud Insights to discover configuration items, determine application mappings, and calculate resource expenditures, enabling accurate cost attribution and generating recommendations for optimizing resource usage.

Benefits of technology

Provides detailed and accurate resource expenditure metrics for digital services, allowing for informed decision-making on service delivery costs, migration, and resource optimization, including right-sizing and usage adjustments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026516592000001_ABST
    Figure 2026516592000001_ABST
Patent Text Reader

Abstract

In various embodiments, a process for determining metrics, including resource expenditures for a digital service, includes discovering a set of configuration items of a computing infrastructure. This process includes identifying some of the configuration items used to deliver the digital service, obtaining a set of resource expenditures associated with at least some of the configuration items, and associating some of the resource expenditures with some of the configuration items. This process also includes aggregating some of the resource expenditures to generate metrics for the digital service.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] Enterprise customers and users (e.g., IT administrators, etc.) may want to know the resource expenditures (e.g., costs) associated with various constituent items (CIs) of the computing infrastructure. Associated questions include whether the resource expenditures are appropriate or can be optimized, and if so, how. However, it is difficult to calculate resource expenditures. For example, when resources are shared, it can be difficult to determine how to allocate the cost among the entities sharing it. Some technologies provide billing information for cloud resources at the CI level. However, these technologies do not provide metrics at the service level (e.g., for independent applications or products).

Brief Description of the Drawings

[0002] Various embodiments of the present invention are disclosed in the following detailed description and the accompanying drawings.

[0003] [Figure 1] It is a block diagram showing a network environment for determining metrics including resource expenditures of digital services. [Figure 2] It is a flowchart showing an embodiment of a process for determining metrics including resource expenditures of digital services. [Figure 3] It is a block diagram showing an embodiment of a system for determining metrics including resource expenditures of digital services. [Figure 4] It is a diagram showing an embodiment of a visually generated service map automatically generated for an automatically detected service. [Figure 5] It is a diagram showing an embodiment of the generated metrics of digital services. [Figure 6] It is a diagram showing an embodiment of rightsizing recommendations for resources related to digital services. [Figure 7] This figure shows one embodiment of a recommendation for usage time related to digital services. [Figure 8] This is a functional diagram illustrating a computer system programmed to determine metrics, including resource expenditures for digital services, according to several embodiments. [Modes for carrying out the invention]

[0004] The present invention can be implemented in various forms, including processes, apparatus, systems, compositions of materials, computer program products embodied in computer-readable storage media, and / or processors, such as processors stored in connected memory or configured to execute instructions provided by such memory. In this specification, these embodiments, or other forms the invention may take, may be referred to as “Technology.” Generally, the order of the steps of the disclosed process can be modified within the scope of the invention. Unless otherwise specified, components such as processors and memory described as configured to perform a certain task can be implemented as general-purpose components temporarily configured to perform that task at a particular time, or as dedicated components manufactured to perform that task. In this specification, “Processor” means one or more devices, circuits, and / or processing cores configured to process data, such as computer program instructions.

[0005] A detailed description of one or more embodiments of the present invention is provided below, along with drawings illustrating the principles of the present invention. Although the present invention is described in relation to these embodiments, it is not limited to any particular embodiment. The scope of the present invention is limited solely by the claims, and the present invention encompasses a variety of alternatives, modifications, and equivalents. The following description provides numerous specific details to help understand the present invention. These details are provided as examples, and the present invention can be carried out without some or all of these details. For clarity, technical matters known in the art related to the present invention are not described in detail so as not to unnecessarily obscure the present invention.

[0006] This document discloses techniques for determining metrics, including resource expenditures, for digital services. In this specification, “digital services” refers to functions or services that can be provided by a computer. For example, digital services may include application cloud services, as further described below. Also in this specification, “configuration items” (CIs) refer to computers, devices, software, or services used to provide digital services. Examples of CIs, but not limited to, include central processing units (CPUs), graphics processing units (GPUs), disks, storage, virtual machines (VMs), and load balancers. At least some of the CIs may be provided by dedicated cloud service providers, such as third-party service providers, which are entities separate from application servers and customers / clients. Each CI may have associated resource expenditures, such as computing resources and other costs, including memory, power, processing cycles, and subscriptions / usages. Third-party service providers may report resource expenditures.

[0007] One example of a digital (application) service is an HR portal that employees can use to search for benefits information, request leave, and so on. Currently, it is difficult for digital service providers to determine the specific costs required to deliver this service. This is because various digital services may share underlying infrastructure. Consequently, it can be difficult to make decisions regarding the service, such as whether the service delivery cost outweighs the benefits, or whether the service should be run on-premises or in the cloud (or migrated to a SaaS provider). The technology disclosed herein provides accurate and detailed information regarding service delivery costs by identifying the underlying infrastructure components of a service, determining metrics, and (optionally) generating recommendations based on those metrics.

[0008] Digital service metrics are determined by discovering one or more configuration items, determining application mappings to identify those CIs used to deliver the digital service, and obtaining reports on the resource expenditures of those CIs. Resource expenditures for individual components can be attributed to a subset of CIs used to deliver the digital service. Taking the capabilities provided by ServiceNow as an example, CIs can be discovered using Cloud Discovery, application mappings can be determined using Service Mapping, and resource expenditures can be understood using Cloud Insights.

[0009] The technical challenges addressed by the technologies disclosed herein include ensuring up-to-date data (e.g., maintaining consistency between cloud services and application mappings) and tracking the history of changes in computing infrastructure and costs to generate recommendations. These metrics can be displayed on a graphical user interface and / or used to generate recommendations for right-sizing (e.g., changing the type of product used), changes in usage time, service migration, etc. For example, recommendations related to service migration may include selecting a different vendor or service provider than the current group of vendors or service providers.

[0010] First, an example of a network environment is described (Figure 1). Next, the process for determining metrics, including resource expenditure for digital services, is described (Figure 2). After that, a system for determining metrics, including resource expenditure for digital services, is described (Figure 3). Finally, several examples of graphical user interfaces are described (Figures 4-7).

[0011] Figure 1 is a block diagram illustrating a network environment for determining metrics, including resource expenditures for digital services. In the example shown in the figure, the application server 101 and the customer network environment 111 are connected via network 105. Network 105 may be a public or private network. In some embodiments, network 105 is a public network such as the Internet. In various embodiments, the application server 101 is a cloud-based application server that provides application services, including an information technology operations management (ITOM) cloud service, for determining metrics, including resource expenditures for digital services (hereinafter sometimes abbreviated as "services") running within a customer network, such as the customer network environment 111. The application server 101 utilizes a database 103 that is communicated with by the application server 101. The application server 101, together with an internal server 107 located within the customer network environment 111, constitutes part of a platform for determining metrics related to services running within the customer network environment 111. For example, by using the automatic service discovery service provided by the application server 101, administrators are provided with discovered services running within the customer network environment 111 that utilize one or more devices in the customer network environment 111, along with the metrics associated with the discovered services. In the example shown in the figure, examples of devices in the customer network environment 111 include devices 113, 115, 117, and 119.

[0012] Depending on the embodiment, as further described herein, the database 103 is used by the application server 101 to determine service-related metrics. For example, the database 103 can be used to store discovery data related to services discovered within a customer network, such as a customer network environment 111. Depending on the embodiment, the database 103 is implemented using one or more databases, such as one or more distributed database servers. For example, although the database 103 is shown as a single entity in Figure 1, it may be implemented as multiple distributed database components connected to the application server 101 via the network 105.

[0013] In some embodiments, database 103 further functions as a CMDB and is used to manage assets under the organization's control, such as devices 113, 115, 117, and 119 in the customer network environment 111, at least in part. For example, each managed asset can be represented as a configuration item (CI) within database 103. In some embodiments, database 103 stores information about managed assets, such as the hardware and / or software configuration of computing devices, as configuration items.

[0014] In some embodiments, the application server 101 provides cloud-based services that assist in managing information technology operations, including determining metrics for services within the customer's information technology environment. For example, services running in the customer's network environment may utilize entities (or devices) within the customer's network infrastructure, such as devices 113, 115, 117, and 119. Connections between processes running on these devices are detected and used to identify relevant services running within the customer's network environment 111. Once services are detected and relevant metrics are determined, the detected services and their metrics are provided to the customer via an automated service detection service offered by the application server 101. This cloud-based detection service can display metrics in or near a visualization map, enabling administrators to make adjustments and decisions regarding services based on the metrics. For example, administrators can change the usage schedule of devices and resources, or change the types of devices and resources used (e.g., reduce the database or storage used). In some embodiments, the application server 101 provides additional cloud services, such as a configuration management database (CMDB) service for managing devices and / or configuration items for the customer. In various embodiments, the application server 101 stores the collected detected service data in the database 103.

[0015] In some embodiments, the application server 101 provides machine learning capabilities for analyzing and classifying discovery information collected from the customer environment. For example, as part of the process of building a set of discovered services running in the customer network environment 111, the application server 101 can classify and / or score discovered connections and / or processes associated with the customer network environment 111. As another example, the application server 101 can determine how its configuration items are being used based on CI characteristics, such as the names of processes running on the CI. As yet another example, the application server 101 can identify similar processes and group them as shared resources. Python fingerprints (execution environment characteristics) on different VMs can be used to determine if they are executable on a single shared VM. In various embodiments, machine learning capabilities, including a machine learning inference server, can be implemented as part of the application server 101 and / or as a separate component used by the application server 101.

[0016] In some embodiments, the customer network environment 111 is an information technology network environment and includes multiple hardware devices, such as devices 113, 115, 117, and 119. Devices 113, 115, 117, and 119 are hardware devices, each potentially being one of several different types of hardware devices, including network equipment (such as gateways and firewalls), load balancers, various servers (such as application servers and database servers), and computing devices (such as employee laptops and desktops). Each of devices 113, 115, 117, and 119 consists of different hardware and software components and typically has the ability to accept or initiate inter-process connections associated with the device, and possibly with network clients outside the customer network environment 111. For example, a process running on device 113 can establish a connection with a process running on device 115. In various embodiments, the customer network environment 111 is connected to network 105. In the example shown in the figure, the internal server 107 has the ability to monitor processes and / or network connections related to devices in the customer network environment 111, such as processes running on devices 113, 115, 117, and 119, and their associated network connections, either independently or in conjunction with additional monitoring modules or agents. In various embodiments, the topology of the customer network environment 111 will differ, and the topology shown in Figure 1 is merely a simplified example.

[0017] In the example shown in the figure, the internal server 107 is an intranet server in the customer network environment 111, and the bidirectional connection between the internal server 107 and devices 113, 115, 117, and 119 indicates that the internal server 107 can monitor devices 113, 115, 117, and 119. Depending on the network configuration, the components within the customer network environment 111, including the internal server 107 and devices 113, 115, 117, and 119, may have complete or limited bidirectional or unidirectional network connectivity to each other. The internal server 107 can be configured to receive and execute service discovery requests from the application server 101, including requests to monitor running processes and / or connections established within the customer network environment 111. The monitoring results are sent back to the application server 101, where they are analyzed and evaluated, the discovered services are identified, and metrics associated with the discovered services are determined. While other approaches are possible, in various embodiments, the internal server 107 is located within the customer network environment 111 and has high access privileges to devices and network data communications that devices outside the customer network environment 111 do not have, and is therefore used to perform monitoring. For example, the internal server 107 can be granted access privileges to monitor data connections between processes running on devices within the customer network environment 111, or to monitor which processes are running on each device. In some embodiments, the internal server 107 may rely on one or more monitoring agents and / or monitoring components associated with different devices and / or (not shown) potential subnets in the customer network environment 111 to properly monitor, for example, information used for determining data communications and service metrics.

[0018] Depending on the embodiment, the functions of the internal server 107 may be implemented by one or more additional devices, including customer devices, such as one or more combinations of devices 113, 115, 117, and 119. For example, by installing monitoring agents on each device or in parallel on each device, processes and / or network connections associated with different devices can be monitored. Depending on the network configuration of the customer network environment 111, such as its ability to accept certain types of incoming network connections, the application server 101 may perform at least some of the functions that the internal server 107 would perform.

[0019] The application server 101 and the customer network environment 111 may access one or more third-party service providers 130 via the network 105. These third-party service providers may offer dedicated cloud services. For example, one third-party service provider might provide a cloud computing platform accessible via an API. This service could be offered on a pay-as-you-go basis with various pricing structures depending on usage patterns. Therefore, understanding resource expenditures associated with third-party service providers can be beneficial in coordinating the use of such third-party services and optimizing the delivery of digital services. The metrics determination techniques disclosed herein are applicable to determining when and how third-party services are used in the delivery of digital services.

[0020] For the sake of simplicity of FIG. 1, some components are shown as single instances, but additional instances of these components may exist. For example, application server 101 and database 103 may include one or more servers, or may share servers. Depending on the embodiment, database 103 may be directly connected to application server 101. For example, database 103 and its components may be replicated and / or distributed across multiple servers and / or components. Depending on the embodiment, components not shown in FIG. 1 may also exist. For example, the network client used to access application server 101 is not shown.

[0021] Next, a process for determining metrics including resource expenditure of digital services running in a customer network such as customer network environment 111 will be described.

[0022] FIG. 2 is a flowchart showing an embodiment of a process for determining metrics including resource expenditure of digital services. This process may be implemented by an application server such as application server 101 in FIG. 1, or a processor such as processor 802 in FIG. 8.

[0023] In the illustrated example, the process begins by first detecting a plurality of constituent items of the computing infrastructure (200). As further described herein, constituent items (CIs) include devices, computers, software, or services. In various embodiments, the CI has an associated record containing data such as manufacturer, vendor, installation location, etc. One or more CIs can be generated or managed using tables, lists, forms within the platform, or using an application. The constituent items can be provided by an application server (e.g., 101 in FIG. 1), a customer, or a third party. In various embodiments, at least one of the constituent items is provided by a third party.

[0024] CI may be obtained from another process such as Discovery provided by ServiceNow. Discovery detects computers, servers, printers, and various IP-enabled devices, as well as applications running on them. Discovery can then use the collected data to update the CIs in the Configuration Management Database (CMDB). An example of Discovery will be further described in relation to Discovery Engine 310.

[0025] In various embodiments, CIs are detected using cloud discovery provided by ServiceNow. The information obtained via cloud discovery can be used for various purposes, one of which is this process. In other words, cloud discovery does not particularly need to be launched to execute this process. Instead, cloud discovery may be set to be executed by an administrator (e.g., according to a schedule), and the information obtained by cloud discovery may be used in this process as further described herein.

[0026] In various embodiments, since Discovery does not recognize application services, relationships between CIs are not constructed based on the application services associated with the CIs. Thus, unlike the technology disclosed herein, conventional techniques based solely on Discovery cannot determine the application service metrics disclosed herein.

[0027] This process identifies a subset of the various configuration items used to deliver a digital service (202). A CI is a foundational element that constitutes a digital (application) service. In other words, multiple CIs come together to realize a single digital service. A CI can include applications, services, devices, load balancers, servers, data storage, and various infrastructure components for realizing the service. An example of a service is a human resources (HR) portal. In various embodiments, a digital service includes a software application. For example, that software application enables a user to access the HR portal.

[0028] In various embodiments, the CIs used to deliver digital services are identified using service mapping (sometimes called top-down discovery) provided by ServiceNow. In various embodiments, top-down discovery discovers and maps CIs that are part of application services. For example, top-down discovery can map a website business service by showing the relationships between a specific web server service, a specific server, and a specific database that stores data for the business service.

[0029] In various embodiments, top-down discovery is performed using discovery patterns to discover CIs belonging to a service and the connections between CIs. A pattern refers to a set of commands aimed at discovering the attributes of a CI and its outward connections. The patterns used for discovery can also be used for service mapping.

[0030] Top-down discovery discovers application services by tracking how transactions flow (e.g., from the URL to the load balancer, then to the application server, and finally to the database server) using an entry point (e.g., a combination of a URL or IP address and port). Service mapping begins the mapping process from this entry point. The entry point varies depending on the nature of the application service. Service mapping has a wide range of pre-defined entry point types to accommodate many widely used applications. For example, when mapping an email application service, the entry point could be the IP address or hostname of the email server. This process then identifies dependencies between CIs based on the connections between them. The identified CIs can be stored in the CMDB.

[0031] In various embodiments, discovery (200) and service mapping (202) work together to first detect CIs by horizontal discovery and then establish relationships between application services by top-down discovery.

[0032] This process captures multiple resource expenditures associated with at least a subset of multiple configuration items (204). Alternatively, it can capture resource expenditures (or broader metrics) for a specific CI. Examples of resource expenditures include various aspects of usage, such as who has access to the CI, how or which parts of the CI are used, when the CI is used, and usage time. In other words, metrics such as integration status, code and infrastructure changes, future forecasts, and weekly trends can be tracked and / or determined. Resource expenditures can be expressed in various forms, such as compute usage, billable usage, or similar forms.

[0033] Referring to Figure 1, CI resource expenditures related to the customer network environment 111 can be obtained via monitoring agents installed on or in parallel with devices within the customer network environment. CI resource expenditures related to the third-party service provider 130 can be obtained by querying this information from the third-party service provider.

[0034] In various embodiments, resource spending is obtained using Cloud Insights provided by ServiceNow. Cloud Insights continuously monitors the cloud infrastructure, enabling users to identify resources and take action to optimize their operations.

[0035] This process associates subsets of resource expenditures with subsets of configuration items (206). In various embodiments, at least one subset of resource expenditures is shared by a subset of multiple configuration items, including a first configuration item and a second configuration item. Associating a subset of resource expenditures with a subset of multiple configuration items involves apportioning the subset of resource expenditures among the configuration items included in the subset of configuration items. For example, one service, such as a VM, may be shared by multiple database or application services.

[0036] While not limited to these examples, examples of allocating a subset of resource expenditures among subsets of multiple configuration items include: • Averaging resource expenditures across subsets of multiple configuration items. or • Allocate a portion of the resource expenditure to each component item included in a subset of multiple component items, based at least on the usage characteristics of each component item. For example, the allocated percentage is proportional to the usage characteristics of each component item.

[0037] This process aggregates subsets of multiple resource expenditures to generate metrics for digital services (208). In various embodiments, aggregating subsets of multiple resource expenditures to generate metrics for digital services involves combining subsets of multiple resource expenditures. In various embodiments, this aggregation may take into account allocation to information technology (IT) overhead. For example, in a large enterprise, IT overhead may be allocated among different departments or users.

[0038] In various embodiments, the metrics of the generated digital service are used to determine at least (i) the usage patterns of the digital service, or (ii) the aggregated total resource costs required to provide the digital service.

[0039] In various embodiments, resource spending on a particular configuration item, which is part of a set of multiple configuration items, is dynamically captured in response to changes in the computing infrastructure and / or changes in the configuration items. For example, as application services evolve, CIs may be added or removed, or specific CIs may be modified (upgraded or have attributes changed). In response to these changes, new resource spending may be captured to accurately reflect the current infrastructure supporting the digital services. In various embodiments, such changes are detected by periodically (e.g., according to a schedule) checking for changes in the customer network environment.

[0040] In various embodiments, the metrics of the generated digital service are output on a graphical user interface (GUI). An example of a GUI is described further in relation to Figure 4.

[0041] In various embodiments, one or more recommendations may be determined and output based on the generated metrics. The recommendations may be specific to a particular CI. For example, machine learning techniques such as time-series learning of a metrics-based database may be performed to understand CI usage. In various embodiments, the recommendations may include grouping of configuration items based on at least the similarity of the configuration items (e.g., for sharing resources). In various embodiments, the recommendations are related to service migration. Examples of recommendations will be further discussed in relation to Figures 6 and 7.

[0042] This process is illustrated using an example of a digital (application) service that provides an HR portal. The configuration items are identified as a cloud storage service for storing employee records, a virtual machine including an application server that provides computing functions, and a load balancer that redirects traffic. Metrics for this HR portal may include usage patterns of the cloud storage service, CPU utilization of the virtual machine, and load balancer traffic (e.g., trends based on time of day / day of the week, such as the end of the month when usage increases). Metrics, including resource expenditures related to the digital service, can be determined using the techniques disclosed herein. For example, the cost score may be a representative value of resource expenditures, such as monetary value or energy consumption. In the case of the HR portal, the cost scores are 0.5 for the cloud service storage, 12 for the CPU, and 0.25 for the load balancer. The cloud service storage is shared between the HR portal and another application service, and it is determined that the HR portal uses approximately 50% of it during allocation, so the cost score is updated to 0.25. Therefore, the total resource expenditure score in this HR portal example is 12.5.

[0043] Figure 3 is a block diagram showing one embodiment of a system for determining metrics, including resource expenditures for digital services. The system shown here is an example of the application server 101 in Figure 1. The application server includes a discovery engine 310, a resource expenditure determination engine 330, and a metrics determination engine 350. The application server is configured to perform the techniques disclosed herein, including the processes shown in Figure 2.

[0044] The discovery engine 310 is configured to discover CIs of the computing infrastructure. In various embodiments, the discovery engine discovers CIs using probes, sensors, and patterns. The probes and sensors include (computer) program scripts that collect and process data on a host and update the CMDB. In various embodiments, the probes survey the CIs in the customer network environment, and the sensors analyze the data returned from the probes.

[0045] A pattern is a sequence of commands intended to detect the attributes of a CI (and outward connections, as further described herein). In various embodiments, patterns may be pre-configured. A pattern includes a set of operations consisting of one or more operations that perform data collection, data processing, and CMDB updates on a host. In various embodiments, unlike probes and sensors, patterns are executed after the horizontal discovery process, as further described herein. Probes, sensors, and patterns may each have default settings or may be customized to find different information. For example, parameters can be configured to control the operation of a particular probe.

[0046] The discovery engine can perform cloud discovery (also known as top-down discovery) to map infrastructure in the customer's network environment and / or the customer's cloud-based infrastructure.

[0047] Horizontal discovery detects configuration items on the customer network environment (e.g., 111 in Figure 1) and registers the detected configuration items in the CMDB. The discovery engine creates / identifies direct relationships between CIs. An example of a relationship between an application CI and a computer CI is the "runs on" relationship, which indicates that the application CI runs on a specific computer CI. The discovery engine may use IP addresses to discover infrastructure within the customer network environment.

[0048] In various embodiments, horizontal discovery includes one or more phases: a scan phase, a classification phase, an identification phase, and a search phase. During the scan phase, probes are sent into the network (e.g., customer network environment 111 in Figure 1) to check if commonly used ports are open and if those ports are responsive to queries. For example, if a probe finds a device responding on port 135, the discovery engine knows that the device is a Windows® server. Once the discovery engine discovers a device or computer, it sends additional probes to determine the type of device and the operating system (OS) installed on it. Referring to the same example, if a device is determined to be a Windows server, the discovery engine sends a Windows Management Instrumentation (WMI) probe to the Windows server to discover the OS. The discovery engine can use records (called classifiers) that specify trigger probes or probes to be executed during the following two phases. If a pattern is used, the classifier specifies trigger probes that invoke the pattern.

[0049] In the identification phase, the discovery engine attempts to gather more information about the device and determine if a CI for the device exists in the CMDB. The discovery engine then uses additional probes, sensors, and identifiers to update existing CIs in the CMDB or generate new ones. Identifiers, also known as identification rules, specify the attributes that probes refer to when matching data against CIs in the CMDB. If patterns are used, the discovery engine uses the appropriate identification rule for the type of CI specified by the pattern.

[0050] In the exploration phase, additional probes are launched, each with an identifier consisting of a classifier. These probes may be designed as exploration probes to collect additional information about the device, such as applications running on the device and additional attributes like memory, network cards, and drivers. The discovery engine then creates relationships between applications and devices, and between applications themselves. If patterns are used, operations within the patterns perform the discovery of the CI.

[0051] In various embodiments, the Management, Instrumentation, and Discovery (MID) server continuously queries instances to perform probe executions and executes instructions within the probe or a pattern specified by the probe. The MID server returns the results to the instances, and sensors on the instances process those results. In various embodiments, the MID server does not retain discovery information.

[0052] Cloud discovery enables users (e.g., IT administrators) to gather detailed information about their cloud-based infrastructure. Cloud discovery discovers resources within various third-party cloud service providers by collecting logical data centers and any sub-accounts associated with an account.

[0053] One type of cloud discovery is service account-based discovery, which discovers resources within a given service account. In various embodiments, service account-based discovery uses cloud provider APIs to collect metadata and register basic attributes in a machine instance CMDB table. Service account-based discovery provides visibility into "tags," which is useful for data reporting and workflow automation. For example, events in the cloud can be used to trigger on-demand discovery of target services. This mechanism helps cloud discovery identify changes and automatically update the CMDB.

[0054] Another type of cloud discovery is IP-based discovery, which uses metadata collected through service account-based discovery to gather more detailed information. For example, it can collect information about installed software, process information, TCP / IP connections, and more.

[0055] In various embodiments, cloud discovery uses discovery patterns to query devices and applications and collect information about them. A pattern is a set of commands for discovering CI attributes and their outward connections. Notifications and alerts from the cloud environment can also be detected. These events are sent via a REST connection and processed to update the CIs in the CMDB as needed.

[0056] In various embodiments, cloud discovery utilizes a MID server to access devices and applications in the cloud. In various embodiments, the MID server includes applications running on a server on a local network (e.g., internal server 107 in Figure 1) that facilitate communication and data movement between a single instance of application server 101 and external applications, data sources, and services.

[0057] In various embodiments, the discovery engine 310 is configured to identify a subset of CIs used to provide digital services, such as CIs that are foundational components of digital (application) services. For example, the discovery engine performs step 202 in Figure 2.

[0058] The resource expenditure determination engine 330 is configured to obtain resource expenditures related to CI. In various embodiments, resource expenditures include at least one of (i) usage patterns of any of the multiple component items, and (ii) computational costs of any of the multiple component items.

[0059] The metrics determination engine 350 is configured to generate metrics for digital services using resource expenditures. In various embodiments, the metrics determination engine 350 can associate a subset of resource expenditures with a subset of CIs, for example, a group of CIs that share resource expenditures, so that resource expenditures are apportioned among the CIs to provide accurate metrics. Alternatively, this function may be performed by the resource expenditure determination engine 330, or both may perform it in cooperation.

[0060] Figure 4 shows one embodiment of an automatically generated visualization service map for automatically detected services. This GUI shows an example of computing infrastructure represented by the service map. On the map, each configuration item (CI) is represented by a symbol. For example, the CIs here are "prod", " / subscriptions / a", " / subscriptions / 7", " / subscriptions / 7", and "dbdemo1". Different icons may be displayed for each type of CI. The user can navigate from the current page using the back button 302 in the upper left corner of the screen.

[0061] Message 1 displays a recommendation based on the metrics of the digital service determined according to the process shown in Figure 2. This is a warning that the monthly cost of the service has exceeded the monthly limit. In this example, the message also includes a recommendation to consider cost reductions in Area A and Area B. This recommendation can be generated by comparing the metrics of the digital service with a predetermined threshold (monthly limit). Recommendations to consider cost reductions in specific areas may also be based on the determination of CIs or groups of CIs with high resource expenditures (e.g., high or statistically high compared to the threshold). In addition, or instead of the above, at least part of the content of Message 1 may be displayed in the form of a pop-up window (Message 2).

[0062] The GUI may be interactive and may output historical data related to at least one of the metrics for the computing infrastructure and the generated digital services. The time selector 306 indicates that the currently displayed view is the current time. The user can go back to past points in time by selecting a component (time selector) 306 or by scrolling the timeline 308.

[0063] Figure 5 shows one embodiment of the metrics for the generated digital service. In this example, the metrics display each CI (first column) and the monthly cost associated with that CI. This example also displays additional details such as the monthly billing date, service account, region, and cloud category.

[0064] Figure 6 illustrates one embodiment of a right-sizing recommendation for digital services. The right-sizing recommendation may be based on how efficiently the CPU and memory are being used, suggesting an appropriate size of CPU and memory to meet the needs. In other words, users can use this recommendation to reduce the resources used to maintain the expected level of service / performance.

[0065] In this example, each CI (first column) is displayed along with its associated provider, size (e.g., version or release), recommended size, and the monthly savings if the current size were switched to the recommended size.

[0066] Figure 7 illustrates one embodiment of a digital service usage time recommendation. Usage time recommendations (sometimes called business hours recommendations) may be based on metrics determined regarding when and how a CI is being used. In this example, each CI (first column) is shown along with its associated provider, region, recommended schedule, and the monthly savings if that recommended schedule were followed.

[0067] Figure 8 is a functional diagram showing a computer system programmed to determine metrics, including resource expenditure for digital services, according to several embodiments. As is evident, other computer system architectures and configurations can also be used to determine metrics, including resource expenditure for digital services. Computer system 800, which includes various subsystems as described below, comprises at least one microprocessor subsystem (also called a “processor” or “CPU”) 802. For example, the processor 802 may be a single-chip processor or may consist of multiple processors. In some embodiments, the processor 802 is a general-purpose digital processor that controls the operation of computer system 800. The processor 802 uses instructions obtained from memory 810 to control the reception and processing of input data and the output and display of data to an output device (e.g., display 818). In some embodiments, the processor 802 is used to perform processes, including and / or processes described in relation to Figure 2.

[0068] The processor 802 is bidirectionally connected to memory 810, which includes a primary memory, typically random access memory (RAM), and a secondary memory, typically read-only memory (ROM). As is well known in the art, primary memory can be used as a general-purpose storage area or temporary workspace, and can also be used to store input data and processed data. Primary memory also stores program instructions and data as data objects and text objects, in addition to other data and instructions that run on the processor 802. Also, as is well known in the art, primary memory typically includes basic operation instructions, program code, data, and objects that the processor 802 uses to perform its functions (e.g., programmed instructions). For example, memory 810 may include any suitable computer-readable storage medium as described below, depending on whether data access needs to be bidirectional or unidirectional. For example, the processor 802 can also retrieve and store frequently needed data directly and very quickly in a cache memory (not shown).

[0069] A removable mass storage device 812 provides additional data storage capacity to the computer system 800 and is connected to the processor 802 in a bidirectional (read-write) or unidirectional (read-only) manner. For example, the storage device 812 may include computer-readable media such as magnetic tape, flash memory, PC cards, portable mass storage devices, holographic storage devices, and other storage capacities. A fixed mass storage device 820 can also provide additional data storage capacity. The most common example of a mass storage device 820 is a hard disk drive. Mass storage devices 812 and 820 typically store additional program instructions and data that the processor 802 is not currently using. It will be understood that the information held in the mass storage devices 812 and 820 can, if necessary, be imported as virtual memory as part of memory 810 (e.g., RAM) in a standard manner.

[0070] Bus 814 can be used not only to provide the processor 802 with access to the storage subsystem, but also to provide access to other subsystems and devices. As shown in the diagram, other subsystems and devices include the display monitor 818, network interface 816, keyboard 804, pointing device 806, and may also include auxiliary input / output device interfaces, sound cards, speakers, and other subsystems as needed. For example, the pointing device 806 could be a mouse, stylus, trackball, or tablet, which is useful for operating a graphical user interface.

[0071] The network interface 816, as shown in the figure, allows the processor 802 to connect to another computer, computer network, or communication network using a network connection. For example, the processor 802 can receive information (e.g., data objects or program instructions) from other networks via the network interface 816, or output information to other networks in the process of executing method / process steps. Information that is often expressed as a sequence of instructions to be executed by the processor can be received from or output to other networks. Interface cards or similar device-enabled software and appropriate software implemented by (e.g., executed on) the processor 802 can be used to connect the computer system 800 to an external network and transfer data according to standard protocols. For example, various embodiments of processing disclosed herein can be executed on the processor 802, or can be executed in cooperation with a remote processor that shares part of the processing via a network such as the Internet, intranet, or local area network. Additional mass storage devices (not shown) can also be connected to the processor 802 via the network interface 816.

[0072] An auxiliary input / output device interface (not shown) can be used in conjunction with the computer system 800. The auxiliary input / output device interface may include a general-purpose or custom-designed interface that enables the processor 802 to send data to and, more typically, receive data from other devices, such as a microphone, touchscreen display, magnetic card reader, tape reader, voice / handwriting recognition device, biometric reader, camera, portable mass storage device, and other computers.

[0073] Furthermore, various embodiments disclosed herein also relate to computer storage products comprising a computer-readable medium containing program code for performing various computer implementation operations. Computer-readable medium refers to any data storage device capable of storing data that can be read by a computer system. Examples of computer-readable medium include, but are not limited to, all of the media described above, magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs, magneto-optical media such as optical discs, and specially configured hardware devices such as application-specific integrated circuits (ASICs), programmable logic devices (PLDs), ROMs, and RAMs. Examples of program code include both machine code generated by a compiler and files containing high-level code files (e.g., scripts) that can be executed using an interpreter.

[0074] The computer system 800 shown in Figure 8 is merely one example of a system suitable for the various embodiments disclosed herein. Other computer systems suitable for the various embodiments disclosed herein may include additional or fewer subsystems. Bus 814 also illustrates an example of an interconnection scheme connecting subsystems. Other computer architectures with different configurations are also available.

[0075] While the embodiments described above include some details for the purpose of clear understanding, the present invention is not limited to the details described. Many alternative means exist for implementing the present invention. Therefore, the embodiments disclosed herein are for illustrative purposes only and do not limit the scope of the present invention.

Claims

1. Discover multiple configuration items of the computing infrastructure, Identify a subset of the aforementioned configuration items used in providing digital services, Obtain multiple resource expenditures related to at least some of the aforementioned multiple component items, Associate the subset of the plurality of resource expenditures with the subset of the plurality of component items, The subset of the aforementioned resource expenditures is aggregated to generate metrics for the digital service. method.

2. The aforementioned plurality of component items include at least one of a device, a computer, or a service. The method according to claim 1.

3. At least one of the aforementioned configuration items is provided by a third party different from the application server and client. The method according to claim 1.

4. The aforementioned digital services include application cloud services, The method according to claim 1.

5. The aforementioned multiple resource expenditures are used to determine at least one of the following: (i) one usage pattern of the aforementioned multiple component items, or (ii) one computational cost of the aforementioned multiple component items. The method according to claim 1.

6. At least one subset of the plurality of resource expenditures is shared by a subset of the plurality of component items, including a first component item and a second component item. Associating the at least one subset of the plurality of resource expenditures with the subset of the plurality of component items includes apportioning the at least one subset of the plurality of resource expenditures among the component items included in the subset of the plurality of component items. The method according to claim 1.

7. Allocating the at least one subset of the plurality of resource expenditures among the subsets of the plurality of component items includes averaging the at least one subset of the plurality of resource expenditures among the component items included in the subset of the plurality of component items. The method according to claim 6.

8. Allocating the at least one subset of the plurality of resource expenditures among the subsets of the plurality of component items includes allocating a portion of the resource expenditure of one of the at least one subsets of the plurality of resource expenditures to each component item included in the subset of the plurality of component items, based on the usage characteristics of at least each of the component items. The method according to claim 6.

9. Aggregating the subset of the multiple resource expenditures in order to generate metrics for the digital service includes combining the subset of the multiple resource expenditures. The method according to claim 1.

10. The generated metrics for the digital service include at least one of (i) the usage patterns of the digital service, or (ii) the aggregated total resource costs required to provide the digital service. The method according to claim 1.

11. This further includes dynamically obtaining resource expenditures related to one of the multiple configuration items in response to changes in the computing infrastructure, The method according to claim 1.

12. Further comprising dynamically obtaining resource expenditures associated with one of the aforementioned configuration items in response to a change in one of the aforementioned configuration items, The method according to claim 1.

13. The further includes outputting the metrics of the generated digital service to a graphical user interface. The method according to claim 1.

14. The graphical user interface is interactive and outputs historical data related to at least one of the metrics of the computing infrastructure or the generated digital service. The method according to claim 13.

15. Further including determining recommendations based on metrics of the generated digital services, The method according to claim 1.

16. The aforementioned recommendation includes, at least, grouping the component items based on similarities between them. The method according to claim 15.

17. The aforementioned recommendation relates to service migration. The method according to claim 15.

18. It is a processor, Discover multiple configuration items of the computing infrastructure, Identify a subset of the aforementioned configuration items used in providing digital services, Obtain multiple resource expenditures related to at least some of the aforementioned multiple component items, Associate the subset of the plurality of resource expenditures with the subset of the plurality of component items, The subsets of the aforementioned resource expenditures are aggregated to generate metrics for the digital service. A processor configured in such a way, A memory connected to the processor and configured to provide instructions to the processor, A system equipped with these features.

19. The aforementioned multiple resource expenditures are used to determine at least one of the following: (i) one usage pattern of the aforementioned multiple component items, or (ii) one computational cost of the aforementioned multiple component items. The system according to claim 1.

20. A computer program product embodied in a non-temporary computer-readable medium, Discover multiple configuration items of the computing infrastructure, Identify a subset of the aforementioned configuration items used in providing digital services, Obtain multiple resource expenditures related to at least some of the aforementioned multiple component items, Associate the subset of the plurality of resource expenditures with the subset of the plurality of component items, The subset of the aforementioned resource expenditures is aggregated to generate metrics for the digital service. A computer program product that includes computer instructions.