A method for detecting a bottleneck in a system includes receiving a graph, wherein a node represents a software module and an edge represents a communication channel between software modules, monitoring selected resources for each software module in comparison to available resources, monitoring a ratio of a bandwidth consumed on a communication channel versus available bandwidth, traversing the graph for identifying a source software module whose produced amount of output is below the amount of output needed by the software module that is in idle mode, and analyzing a resource consumption of the identified source software module to identify a lacking amount of resource for the identified source software module. A computer system and computer program product corresponding to the above method are also disclosed herein.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A method for detecting a bottleneck in a system comprising software modules communicating with each other via communication channels, said method comprising: receiving a graph, wherein a node represents one of said software modules, and an edge represents one of said communication channels with a data flow from a transmitting software module out of said software modules to a receiving software module out of said software modules, and wherein a node, representing a software module, serving as transmitting software module and as receiving software module, relates to a predefined factor representing an expected ratio of a received amount of input data versus a produced amount of output data derived from said input data; monitoring, for each software module, for selected resources a ratio of an amount of said resources consumed by said software module versus an available amount of said resources; monitoring, for each communication channel, a ratio of a bandwidth consumed by one of said communication channels versus an available bandwidth of said communication channel, and an amount of idle time of said communication channel; traversing, for a software module in idle mode, said graph for identifying a source software module whose produced amount of output is below said amount of output needed by said software module that is in idle mode; and analyzing a resource consumption of said identified source software module to identify a lacking amount of resource for said identified source software module. 2. The method according to claim 1, wherein said node is selected out of the group comprising a data source, a data processing system, and a user interface. 3. The method according to claim 2, wherein said data source is a database, a file system, a content management system, or a streaming data interface. 4. The method according to claim 1, wherein at least one of said software modules is a micro-service. 5. The method according to claim 1, wherein analyzing a resource consumption comprises tracking and reporting said lacking support of a resource over a time period. 6. The method according to claim 1, wherein analyzing a resource consumption comprises determining a recommendation to counteract to said lacking support of a resource. 7. The method according to claim 1, wherein analyzing a resource consumption comprises moving said software module to a different computing system. 8. The method according to claim 1, wherein analyzing a resource consumption comprises predicting how said system will react to changes in the resources. 9. The method according to claim 1, wherein analyzing resource consumption comprises tracking and reporting another software module competing for said lacking resources on said same computing system. 10. A bottleneck identification system for detecting a bottleneck in a system comprising software modules communicating with each other via communication channels, said bottleneck identification method comprising: a reception unit adapted for receiving a graph, wherein a node represents one of said software modules, and an edge represents one of said communication channels with a data flow from a transmitting software module out of said software modules to a receiving software module out of said software modules, and wherein a node, representing a software module, serving as transmitting software module and as receiving software module relates to a predefined factor representing an expected ratio of a received amount of input data versus a produced amount of output data derived from said input data; a monitoring unit adapted for monitoring, for each software module, for selected resources a ratio of an amount of said resources consumed by said software module versus an available amount of said resources, wherein said monitoring unit is also adapted for monitoring, for each communication channel, a ratio of a bandwidth consumed by one of said communication channels versus an available bandwidth on said communication channel, and an amount of idle time of said communication channel; a traversing module adapted for traversing, for a software module in idle mode, said graph for identifying a source software module whose produced amount of output is below the amount of output needed by said software module that is in idle mode; and an analysis module adapted for analyzing a resource consumption of said identified source software module to identify a lacking amount of resource for said identified source software module. 11. The bottleneck identification system according to claim 10, wherein said node is selected out of the group comprising a data source, a data processing system, and a user interface. 12. The bottleneck identification system according to claim 11, wherein said data source is a database, a file system, a content management system, or a streaming data interface. 13. The bottleneck identification system according to claim 10, wherein at least one of said software modules is a micro-service. 14. The bottleneck identification system according to claim 10, wherein said analysis module is also adapted for tracking and reporting said lacking support of a resource over a time period. 15. The bottleneck identification system according to claim 10, wherein said analysis module is also adapted for determining a recommendation to counteract to said lacking support of a resource. 16. The bottleneck identification system according to claim 10, wherein said analysis module is also adapted for moving said software module to a different computing system. 17. The bottleneck identification system according to claim 10, wherein said analysis module is also adapted for predicting how said system will react to changes in the resources. 18. The bottleneck identification system according to claim 10, wherein said analysis module is also adapted for tracking and reporting another software module competing for said lacking resources on said same computing system. 19. A computer program product for detecting a bottleneck in a system comprising software modules communicating with each other via communication channels, said computer program product comprising a computer readable storage medium having program instructions embodied therewith, said program instructions being executable by one or more computing systems to cause said one or more computing systems to: receive a graph, wherein a node represents one of said software modules, and an edge represents one of said communication channels with a data flow from a transmitting software module out of said software modules to a receiving software module out of said software modules, and wherein a node, representing a software module, serving as transmitting software module and as receiving software module relates to a predefined factor representing an expected ratio of a received amount of input data versus a produced amount of output data derived from said input data; monitor, for each software module, for selected resources a ratio of an amount of said resources consumed by said software module versus an available amount of said resources; monitor, for each communication channel, a ratio of a bandwidth consumed by one of said communication channels versus an available bandwidth on said communication channel, and an amount of idle time of said communication channel; traverse, for a software module in idle mode, said graph for identifying a source software module whose produced amount of output is below said amount of output needed by said software module that is in idle mode; and analyze a resource consumption of said identified source software module to identify a lacking amount of resource for said identified source software module.