The document discusses building a Management Information Base (MIB) for monitoring Ingres databases using the Ingres Management Architecture (IMA). It describes creating an IMA database, registering managed objects tables, and mapping managed objects from processes to rows in the MIB tables with attributes like server, class ID, and instance. Examples of class IDs and instances are provided. The MIB provides a structured way to access management data from Ingres processes.
Behind the Code 'September 2022 // by ExnessMaxim Gaponov
The presentation discussed the evolution of hacks from 2009 to the present. Key hacks included the RockYou breach in 2009, Stuxnet in 2010, Shamoon in 2012, emergence of IoT hacks in 2014, Visa-Mastercard breach in 2015, WannaCry in 2017, Bangladesh Bank heist in 2016, and the FireEye hack in 2021. The presentation concluded that people will continue to be the main source of attacks, defenses need to move from reactive to resilient approaches, cloud security is important, and more interconnections will create new vulnerabilities as technology evolves.
This document summarizes a presentation about OpenIDM. It describes where OpenIDM fits into Open Identity Stack (OIS), common identity management use cases like provisioning and password management that OpenIDM addresses, and OpenIDM features like its REST interface, connectors to external systems, and use of workflows. The architecture of OpenIDM is also summarized, including its components like OSGi, persistence layer, and connectors. Configuration of connectors and potential role management challenges are also briefly outlined.
The document discusses dynamic programming in Web Dynpro. Key points covered include:
1. Dynamic modifications can be made to the context structure and UI element hierarchy at runtime through techniques like dynamic context manipulation, UI manipulation, and assigning actions to UI elements.
2. Circumstances where dynamic modifications are needed include when the data structure is unknown until runtime or for generic, reusable components.
3. The wdDoModifyView method allows direct access to UI elements and is where dynamic UI creation occurs.
4. Dynamic modifications involve creating context and UI element metadata at runtime through API methods and binding elements together through techniques like populating context nodes with data.
About The Event-Driven Data Layer & Adobe AnalyticsKevin Haag
This document summarizes Kevin Haag's presentation about event-driven data layers and Adobe Analytics. It discusses different types of data layers including the event-driven data layer (EDDL) and customer experience digital data layer (CEDDL). It also describes how Adobe products like Launch and DTM previously did not have a built-in data layer model, but now the Data Layer Manager extension allows populating custom variables and triggering rules based on data layer events. Resources for learning more about data layers and analytics are also provided.
SEC301 - New AWS security services for container threat detection - final.pdfJean-François LOMBARDO
1) The document discusses new AWS security services for container threat detection, including Amazon GuardDuty for EKS, Amazon Inspector, and AWS Security Hub.
2) It provides information on how these services can help secure containers by providing visibility, improving security posture, and automating responses to threats.
3) Recommendations are given on how to integrate and leverage these services for continuous threat monitoring, vulnerability management, and streamlining security workflows across container environments.
This document discusses enabling real-time analytics using Hadoop MapReduce on an in-memory data grid (IMDG). It describes implementing MapReduce using parallel method invocation on an IMDG to eliminate batch scheduling overhead and analyze live data. Sample use cases are presented for applications in financial services, ecommerce, and other industries that require real-time analysis of large, changing datasets.
I’m a developer and I get frustrated when things are harder than they should be. Our product (Mir) was harder to release and to use than it should be but no-one cared enough to do anything about it.
My employer allows time for (approved) "side projects". Exploiting this, I started writing an "Abstraction Layer" (MirAL) as a proof-of-concept that these problems could be solved.
Over time it became apparent that this approach solved other problems and management interest grew. Until MirAL became my "day job" and adopted as part of the product.
This talk covers the both the technical and organisational aspects of the problem and the solution. Hopefully, comparisons can be made with the experience of attendees.
Behind the Code 'September 2022 // by ExnessMaxim Gaponov
The presentation discussed the evolution of hacks from 2009 to the present. Key hacks included the RockYou breach in 2009, Stuxnet in 2010, Shamoon in 2012, emergence of IoT hacks in 2014, Visa-Mastercard breach in 2015, WannaCry in 2017, Bangladesh Bank heist in 2016, and the FireEye hack in 2021. The presentation concluded that people will continue to be the main source of attacks, defenses need to move from reactive to resilient approaches, cloud security is important, and more interconnections will create new vulnerabilities as technology evolves.
This document summarizes a presentation about OpenIDM. It describes where OpenIDM fits into Open Identity Stack (OIS), common identity management use cases like provisioning and password management that OpenIDM addresses, and OpenIDM features like its REST interface, connectors to external systems, and use of workflows. The architecture of OpenIDM is also summarized, including its components like OSGi, persistence layer, and connectors. Configuration of connectors and potential role management challenges are also briefly outlined.
The document discusses dynamic programming in Web Dynpro. Key points covered include:
1. Dynamic modifications can be made to the context structure and UI element hierarchy at runtime through techniques like dynamic context manipulation, UI manipulation, and assigning actions to UI elements.
2. Circumstances where dynamic modifications are needed include when the data structure is unknown until runtime or for generic, reusable components.
3. The wdDoModifyView method allows direct access to UI elements and is where dynamic UI creation occurs.
4. Dynamic modifications involve creating context and UI element metadata at runtime through API methods and binding elements together through techniques like populating context nodes with data.
About The Event-Driven Data Layer & Adobe AnalyticsKevin Haag
This document summarizes Kevin Haag's presentation about event-driven data layers and Adobe Analytics. It discusses different types of data layers including the event-driven data layer (EDDL) and customer experience digital data layer (CEDDL). It also describes how Adobe products like Launch and DTM previously did not have a built-in data layer model, but now the Data Layer Manager extension allows populating custom variables and triggering rules based on data layer events. Resources for learning more about data layers and analytics are also provided.
SEC301 - New AWS security services for container threat detection - final.pdfJean-François LOMBARDO
1) The document discusses new AWS security services for container threat detection, including Amazon GuardDuty for EKS, Amazon Inspector, and AWS Security Hub.
2) It provides information on how these services can help secure containers by providing visibility, improving security posture, and automating responses to threats.
3) Recommendations are given on how to integrate and leverage these services for continuous threat monitoring, vulnerability management, and streamlining security workflows across container environments.
This document discusses enabling real-time analytics using Hadoop MapReduce on an in-memory data grid (IMDG). It describes implementing MapReduce using parallel method invocation on an IMDG to eliminate batch scheduling overhead and analyze live data. Sample use cases are presented for applications in financial services, ecommerce, and other industries that require real-time analysis of large, changing datasets.
I’m a developer and I get frustrated when things are harder than they should be. Our product (Mir) was harder to release and to use than it should be but no-one cared enough to do anything about it.
My employer allows time for (approved) "side projects". Exploiting this, I started writing an "Abstraction Layer" (MirAL) as a proof-of-concept that these problems could be solved.
Over time it became apparent that this approach solved other problems and management interest grew. Until MirAL became my "day job" and adopted as part of the product.
This talk covers the both the technical and organisational aspects of the problem and the solution. Hopefully, comparisons can be made with the experience of attendees.
This document provides an overview of Sybase BAM (Business Activity Monitoring). It discusses the technology background of BAM, CEP, and RTBI. It then describes Sybase BAM's analytic model, architecture, main features, and a demo. The analytic model uses fields, rules, actions and timers to process events. The architecture includes components like the BAM engine and tools. Main features include support for complex event processing, real-time BI, alerts, visualization, metadata-driven design, and high volume processing.
OSMC 2021 | Still directing the director… and more!NETWAYS
For the monitoring of our systems, we make extensive use of Icinga, its director, and the business process monitoring module. We also make broad use of automation (at least we try to!). In this talk we would like to tell you how we automated the monitoring of our services using our self-written Ansible collections. We will cover how we developed the Ansible components and how we use them. We’ll also show you what we plan to do with them in the future.
Nagios Conference 2012 - Mike Weber - disasterNagios
Mike Weber's presentation on using Nagios and preventing disasters in your configuration.
The presentation was given during the Nagios World Conference North America held Sept 25-28th, 2012 in Saint Paul, MN. For more information on the conference (including photos and videos), visit: http://go.nagios.com/nwcna
Bei Jimdo sammeln wir jede Menge Metriken über alle Teile unseres Systems. Dabei fallen Daten auf allen Ebenen des Systems an: Infrastruktur, System und Applikation. Wichtig ist, dass alle Entwickler zu jedem Zeitpunkt Einblick in die Echtzeit-Metriken ihrer Services nehmen können. Um das zu garantieren, haben wir uns einige Zeit mit der Integration von Prometheus in unsere Systeme beschäftigt.
In unserem Talk werden wir sowohl über den Betrieb von Prometheus als auch über die Integrationen mit dem Rest der Jimdo-Plattform sprechen. Wir werden von Stolpersteinen und Tricks berichten, die wir gelernt haben, sowie einen Einblick in unserer Tool-Landschaft geben.
This document discusses how a company implemented a CMDB (configuration management database) to automate their IT infrastructure using DevOps principles. The CMDB stores information on all their IT assets including servers, VMs, network devices, users and projects. It is fully automated with no manual maintenance needed. The CMDB integration has provided benefits like standardizing quality controls, finding underused resources to save costs, and delivering knowledge to users. It allows them to provision infrastructure through scripts like Ansible. An example is provided of how the CMDB was used to migrate 120 servers between data centers. The conclusions emphasize that a DevOps CMDB should integrate within the organization, information is only useful if you can do something with it, and political support
The document introduces aspects-oriented programming (AOP) as a way to separate cross-cutting concerns from core functionality in code. It discusses problems with duplicating code for logging, validation, and other concerns across classes. The solutions section evaluates different AOP approaches: 1) using higher-order functions, 2) dynamic proxies through dependency injection containers, 3) modifying bytecode through IL transformations, and 4) compile-time modifications. While each approach has advantages, build-time AOP frameworks avoid low-level bytecode work while still providing powerful code transformations.
This document discusses CQRS (Command Query Responsibility Segregation) and Event Sourcing principles and how they are applied in Magento's Multi-Source Inventory (MSI) module. It provides an overview of how MSI uses a CQRS architecture with event sourcing to allow inventory to be managed across multiple sources. It describes how MSI uses event sourcing to store inventory data and reservations and allows querying inventory availability. It also discusses how MSI supports microservices and provides APIs for integration with other systems.
In this two-hour, instructor-led hands-on lab, attendees will learn how to use the latest .Net APM features in real-life scenarios to gain operational insights into their applications.
The interactive lab will cover multiple use cases, including:
o Monitoring Azure web apps
o Best practices monitoring ASP.NET MVC and WebAPI applications
o Reasons, tips, and tricks on using service endpoints
o Mastering "getter chain" skills to collect the right data
The lab will include a presentation, hands-on exercises, and Q&A. To get the most out of the lab, attendees will be required to complete pre-requisite exercises and bring their own laptops.
For more information, go to: www.appdynamics.com
This document discusses considerations for populating a CMDB from automated discovery data. It covers data enrichment from both user-managed and electronically discovered sources. Normalization and reconciliation processes are explained to standardize data from various tools. Performance tuning tips are provided, such as indexing databases and reducing network latency during synchronization. The benefits of fully integrating discovery data into the CMDB are described as enhanced usability and ability to relate ITSM requests to configuration items.
The document discusses frontend application development using jQuery and improvements that can be made. It notes that while jQuery is easy for small amounts of code, complexity grows quickly without proper architecture. It recommends separating view logic from business logic, using proven patterns like MVC/MVVM, creating a custom solution, or leveraging an existing framework. Backbone.js and Marionette.js are introduced as frameworks that can provide structure and simplify code. Key concepts like models, collections, views, and templating are explained for building maintainable single page applications.
Auto inspection lot creation and Auto Usage decision for required partsAkshath L.T
This document describes creating an automatic usage decision for inspection lots upon specific business scenarios. It involves enhancing a BADI (MB_DOCUMENT_BADI) to automatically update the usage decision to "Accept" for trusted materials from trusted vendors during the goods receipt process, by calling a custom function module (ZUPDATE_UD). The function module checks a custom table (ZAUTO_UD) to determine if the material and vendor are trusted, and if so, calls the BAPI to update the usage decision without requiring a quality inspection. This allows inspection to be automated for trusted suppliers and materials.
This document discusses implementing a data-driven security model in SQL Server Analysis Services (SSAS). It describes the problem of users having access to more data than intended when they belong to multiple roles secured by different dimensions. The solution is to use a single "data security" role and dimension that represents every fact-dimension combination, and dynamically filters data based on the user's login credentials. An alternative is a custom role assembly that can short-circuit the additive nature of multiple roles in SSAS.
This IBM QRadar training is designed for security analysts, security technical architects, offense managers, network administrators, and system administrators using QRadar SIEM.
IBM Security QRadar SIEM is a tech platform developed by IBM to provide a 360-degree overview of an organization’s security system.
QRadar normalizes events that come from a security system’s log sources and correlates them according to certain rules configured in QRadar.
IBM QRadar collects log data from an enterprise, network devices, host assets, operating systems, applications, vulnerabilities, user activities and behaviors.
IBM QRadar performs real-time analysis of the log data and network flows to identify malicious activity so it could be stopped quickly, preventing or minimizing damage to an organization.
Operational systems manage our finances, shopping, devices and much more. Adding real-time analytics to these systems enables them to instantly respond to changing conditions and provide immediate, targeted feedback. This use of analytics is called "operational intelligence," and the need for it is widespread.
This talk will explain how in-memory computing techniques can be used to implement operational intelligence. It will show how an in-memory data grid integrated with a data-parallel compute engine can track events generated by a live system, analyze them in real time, and create alerts that help steer the system’s behavior. Code samples will demonstrate how an in-memory data grid employs object-oriented techniques to simplify the correlation and analysis of incoming events by maintaining an in-memory model of a live system.
The talk also will examine simplifications offered by this approach over directly analyzing incoming event streams from a live system using complex event processing or Storm. Lastly, it will explain key requirements of the in-memory computing platform for operational intelligence, in particular real-time updating of individual objects and high availability using data replication, and contrast these requirements to the design goals for stream processing in Spark.
Ensure The Success of VMware Horizon View DeploymentseG Innovations
VMware Horizon View allows IT organizations to deliver virtual or hosted desktops and applications through a single platform to users. The success of these virtual desktop deployments is linked to the user experience: virtual desktops have to deliver better performance than physical desktops.
This webinar presentation helps you learn how you can unlock the benefits of desktop and application virtualization by enabling your organization to monitor, diagnose and report on the performance of your VMware Horizon View infrastructure.
This document describes a cloud iris verification system that allows secure online shopping through iris recognition. The system has two main components: a digital store website for shopping and an iris verification service (IVS) that runs on cloud infrastructure. The IVS uses iris segmentation, normalization, feature encoding, and matching to verify users' identities and integrate with the digital store for authentication during login and purchases.
How Pixid dropped Oracle and went hybrid with MariaDBMariaDB plc
Pixid replaced Oracle Database with MySQL in 2011, then soon migrated to MariaDB to get better performance, more features and synchronous clustering for high availability. In addition to high-performance transactions, their customers needed access to fast analytics for self-service reporting and data exploration. Pixid started with a separate columnar database for analytics, but with the release of MariaDB ColumnStore, they found a more elegant solution – deploying a single database platform to handle both transactions and analytics. In this session, Antoine Gosset and Jérôme Mouret share how Pixid went from Oracle Database to handling both transactional and analytical workloads with MariaDB.
Windows Store app using XAML and C#: Enterprise Product Development Mahmoud Hamed Mahmoud
This document provides an agenda and overview for a presentation on building Windows Store apps using XAML and C#. The presentation will demonstrate the Kona project, a sample Windows Store app, and how to build and test a Windows Store app using Team Foundation Build. It will also cover globalization, logging, MVVM pattern, navigation, and visual state support in Windows Store apps. The presentation aims to provide tips and best practices for enterprise product development of Windows Store apps.
This document summarizes concepts and tools for Kubernetes monitoring. It discusses generating metrics with Dropwizard Metrics, collecting and aggregating metrics with Prometheus, and visualizing metrics with Grafana. Key steps include annotating Pods and Services to expose metrics, deploying Prometheus with the Prometheus Operator, and integrating Node Exporters and Kubernetes metrics to expose system and resource metrics. The document concludes with a demo of the end monitoring setup.
This document provides an overview of Sybase BAM (Business Activity Monitoring). It discusses the technology background of BAM, CEP, and RTBI. It then describes Sybase BAM's analytic model, architecture, main features, and a demo. The analytic model uses fields, rules, actions and timers to process events. The architecture includes components like the BAM engine and tools. Main features include support for complex event processing, real-time BI, alerts, visualization, metadata-driven design, and high volume processing.
OSMC 2021 | Still directing the director… and more!NETWAYS
For the monitoring of our systems, we make extensive use of Icinga, its director, and the business process monitoring module. We also make broad use of automation (at least we try to!). In this talk we would like to tell you how we automated the monitoring of our services using our self-written Ansible collections. We will cover how we developed the Ansible components and how we use them. We’ll also show you what we plan to do with them in the future.
Nagios Conference 2012 - Mike Weber - disasterNagios
Mike Weber's presentation on using Nagios and preventing disasters in your configuration.
The presentation was given during the Nagios World Conference North America held Sept 25-28th, 2012 in Saint Paul, MN. For more information on the conference (including photos and videos), visit: http://go.nagios.com/nwcna
Bei Jimdo sammeln wir jede Menge Metriken über alle Teile unseres Systems. Dabei fallen Daten auf allen Ebenen des Systems an: Infrastruktur, System und Applikation. Wichtig ist, dass alle Entwickler zu jedem Zeitpunkt Einblick in die Echtzeit-Metriken ihrer Services nehmen können. Um das zu garantieren, haben wir uns einige Zeit mit der Integration von Prometheus in unsere Systeme beschäftigt.
In unserem Talk werden wir sowohl über den Betrieb von Prometheus als auch über die Integrationen mit dem Rest der Jimdo-Plattform sprechen. Wir werden von Stolpersteinen und Tricks berichten, die wir gelernt haben, sowie einen Einblick in unserer Tool-Landschaft geben.
This document discusses how a company implemented a CMDB (configuration management database) to automate their IT infrastructure using DevOps principles. The CMDB stores information on all their IT assets including servers, VMs, network devices, users and projects. It is fully automated with no manual maintenance needed. The CMDB integration has provided benefits like standardizing quality controls, finding underused resources to save costs, and delivering knowledge to users. It allows them to provision infrastructure through scripts like Ansible. An example is provided of how the CMDB was used to migrate 120 servers between data centers. The conclusions emphasize that a DevOps CMDB should integrate within the organization, information is only useful if you can do something with it, and political support
The document introduces aspects-oriented programming (AOP) as a way to separate cross-cutting concerns from core functionality in code. It discusses problems with duplicating code for logging, validation, and other concerns across classes. The solutions section evaluates different AOP approaches: 1) using higher-order functions, 2) dynamic proxies through dependency injection containers, 3) modifying bytecode through IL transformations, and 4) compile-time modifications. While each approach has advantages, build-time AOP frameworks avoid low-level bytecode work while still providing powerful code transformations.
This document discusses CQRS (Command Query Responsibility Segregation) and Event Sourcing principles and how they are applied in Magento's Multi-Source Inventory (MSI) module. It provides an overview of how MSI uses a CQRS architecture with event sourcing to allow inventory to be managed across multiple sources. It describes how MSI uses event sourcing to store inventory data and reservations and allows querying inventory availability. It also discusses how MSI supports microservices and provides APIs for integration with other systems.
In this two-hour, instructor-led hands-on lab, attendees will learn how to use the latest .Net APM features in real-life scenarios to gain operational insights into their applications.
The interactive lab will cover multiple use cases, including:
o Monitoring Azure web apps
o Best practices monitoring ASP.NET MVC and WebAPI applications
o Reasons, tips, and tricks on using service endpoints
o Mastering "getter chain" skills to collect the right data
The lab will include a presentation, hands-on exercises, and Q&A. To get the most out of the lab, attendees will be required to complete pre-requisite exercises and bring their own laptops.
For more information, go to: www.appdynamics.com
This document discusses considerations for populating a CMDB from automated discovery data. It covers data enrichment from both user-managed and electronically discovered sources. Normalization and reconciliation processes are explained to standardize data from various tools. Performance tuning tips are provided, such as indexing databases and reducing network latency during synchronization. The benefits of fully integrating discovery data into the CMDB are described as enhanced usability and ability to relate ITSM requests to configuration items.
The document discusses frontend application development using jQuery and improvements that can be made. It notes that while jQuery is easy for small amounts of code, complexity grows quickly without proper architecture. It recommends separating view logic from business logic, using proven patterns like MVC/MVVM, creating a custom solution, or leveraging an existing framework. Backbone.js and Marionette.js are introduced as frameworks that can provide structure and simplify code. Key concepts like models, collections, views, and templating are explained for building maintainable single page applications.
Auto inspection lot creation and Auto Usage decision for required partsAkshath L.T
This document describes creating an automatic usage decision for inspection lots upon specific business scenarios. It involves enhancing a BADI (MB_DOCUMENT_BADI) to automatically update the usage decision to "Accept" for trusted materials from trusted vendors during the goods receipt process, by calling a custom function module (ZUPDATE_UD). The function module checks a custom table (ZAUTO_UD) to determine if the material and vendor are trusted, and if so, calls the BAPI to update the usage decision without requiring a quality inspection. This allows inspection to be automated for trusted suppliers and materials.
This document discusses implementing a data-driven security model in SQL Server Analysis Services (SSAS). It describes the problem of users having access to more data than intended when they belong to multiple roles secured by different dimensions. The solution is to use a single "data security" role and dimension that represents every fact-dimension combination, and dynamically filters data based on the user's login credentials. An alternative is a custom role assembly that can short-circuit the additive nature of multiple roles in SSAS.
This IBM QRadar training is designed for security analysts, security technical architects, offense managers, network administrators, and system administrators using QRadar SIEM.
IBM Security QRadar SIEM is a tech platform developed by IBM to provide a 360-degree overview of an organization’s security system.
QRadar normalizes events that come from a security system’s log sources and correlates them according to certain rules configured in QRadar.
IBM QRadar collects log data from an enterprise, network devices, host assets, operating systems, applications, vulnerabilities, user activities and behaviors.
IBM QRadar performs real-time analysis of the log data and network flows to identify malicious activity so it could be stopped quickly, preventing or minimizing damage to an organization.
Operational systems manage our finances, shopping, devices and much more. Adding real-time analytics to these systems enables them to instantly respond to changing conditions and provide immediate, targeted feedback. This use of analytics is called "operational intelligence," and the need for it is widespread.
This talk will explain how in-memory computing techniques can be used to implement operational intelligence. It will show how an in-memory data grid integrated with a data-parallel compute engine can track events generated by a live system, analyze them in real time, and create alerts that help steer the system’s behavior. Code samples will demonstrate how an in-memory data grid employs object-oriented techniques to simplify the correlation and analysis of incoming events by maintaining an in-memory model of a live system.
The talk also will examine simplifications offered by this approach over directly analyzing incoming event streams from a live system using complex event processing or Storm. Lastly, it will explain key requirements of the in-memory computing platform for operational intelligence, in particular real-time updating of individual objects and high availability using data replication, and contrast these requirements to the design goals for stream processing in Spark.
Ensure The Success of VMware Horizon View DeploymentseG Innovations
VMware Horizon View allows IT organizations to deliver virtual or hosted desktops and applications through a single platform to users. The success of these virtual desktop deployments is linked to the user experience: virtual desktops have to deliver better performance than physical desktops.
This webinar presentation helps you learn how you can unlock the benefits of desktop and application virtualization by enabling your organization to monitor, diagnose and report on the performance of your VMware Horizon View infrastructure.
This document describes a cloud iris verification system that allows secure online shopping through iris recognition. The system has two main components: a digital store website for shopping and an iris verification service (IVS) that runs on cloud infrastructure. The IVS uses iris segmentation, normalization, feature encoding, and matching to verify users' identities and integrate with the digital store for authentication during login and purchases.
How Pixid dropped Oracle and went hybrid with MariaDBMariaDB plc
Pixid replaced Oracle Database with MySQL in 2011, then soon migrated to MariaDB to get better performance, more features and synchronous clustering for high availability. In addition to high-performance transactions, their customers needed access to fast analytics for self-service reporting and data exploration. Pixid started with a separate columnar database for analytics, but with the release of MariaDB ColumnStore, they found a more elegant solution – deploying a single database platform to handle both transactions and analytics. In this session, Antoine Gosset and Jérôme Mouret share how Pixid went from Oracle Database to handling both transactional and analytical workloads with MariaDB.
Windows Store app using XAML and C#: Enterprise Product Development Mahmoud Hamed Mahmoud
This document provides an agenda and overview for a presentation on building Windows Store apps using XAML and C#. The presentation will demonstrate the Kona project, a sample Windows Store app, and how to build and test a Windows Store app using Team Foundation Build. It will also cover globalization, logging, MVVM pattern, navigation, and visual state support in Windows Store apps. The presentation aims to provide tips and best practices for enterprise product development of Windows Store apps.
This document summarizes concepts and tools for Kubernetes monitoring. It discusses generating metrics with Dropwizard Metrics, collecting and aggregating metrics with Prometheus, and visualizing metrics with Grafana. Key steps include annotating Pods and Services to expose metrics, deploying Prometheus with the Prometheus Operator, and integrating Node Exporters and Kubernetes metrics to expose system and resource metrics. The document concludes with a demo of the end monitoring setup.
2. GEMINIT
AUA-UK 2012
This work is licensed under the Creative Commons Attribution-NoDerivs 3.0 Unported License.
To view a copy of this license, visit http://creativecommons.org/licenses/by-nd/3.0/.
Disclaimer
Representations, warranties and disclaimer. Unless otherwise mutually agreed to by the parties in writing, GEMINIT bvba offers this
documentation as-is and makes no representations or warranties of any kind concerning the work, express, implied, statutory or
otherwise, including, without limitation, warranties of title, merchantability, fitness for a particular purpose, noninfringement, or the
absence of latent or other defects, accuracy, or the presence of absence of errors, whether or not discoverable.
Limitation on liability. Except to the extent required by applicable law, in no event will GEMINIT bvba be liable to you on any legal
theory for any special, incidental, consequential, punitive or exemplary damages arising out of this license or the use of the
work, even if GEMINIT bvba has been advised of the possibility of such damages.
Using IMA for monitoring Ingres 2
3. GEMINIT
AUA-UK 2012
Using IMA for monitoring Ingres
• Introduction & Concepts
• Building the MIB
• Using the MIB for monitoring
• Case: lockman
Using IMA for monitoring Ingres 3
5. GEMINIT
AUA-UK 2012
What is the IMA?
• = Ingres Management Architecture
• Provides access to Ingres process related
information through SQL
select
update (limited)
• Gateway
• imadb database created at installation
select * from ima_server_sessions
Introduction & Concepts
Using IMA for monitoring Ingres 5
6. GEMINIT
AUA-UK 2012
A few concepts
• Managed processes
• Managed objects
• MIB
6
Introduction & Concepts
Using IMA for monitoring Ingres
7. GEMINIT
AUA-UK 2012
Managed Processes
• Processes which exposes internal management
data.
• We can monitor certain aspects of these
processes.
• Examples: DBMS server(s), recovery server, name
server, communication server(s).
7
Introduction & Concepts – Concepts
Using IMA for monitoring Ingres
9. GEMINIT
AUA-UK 2012
Managed Objects
• Data structures (variables) in managed processes.
• Hold information about the state of the process.
• Value of type integer or varchar.
• Example:
varchar: query currently being executed by a user
session in a DBMS server
integer: memory left in Query Storage Facility (QSF)
9
Introduction & Concepts – Concepts
Using IMA for monitoring Ingres
11. GEMINIT
AUA-UK 2012
Managed Objects
• A managed object identified by:
server: the managed process where it resides
class: the type of information
‐ effective user name, session identifier,...
instance: the occurence of a class within a process
‐ the session with identifier 0000000046913793224064
value: the actual value which is an integer or varchar
‐ session identifier 0000000046913793224064
11
Introduction & Concepts – Concepts
Using IMA for monitoring Ingres
12. GEMINIT
AUA-UK 2012
Management Domain
• Set of managed objects visible to the current
session, i.e. session specific.
• Initially only the DBMS server that a session is
connected with.
• Management domain can be expanded:
to other processes,
to all processes in the local node,
to processes in a remote node.
12
Introduction & Concepts – Concepts
Using IMA for monitoring Ingres
14. GEMINIT
AUA-UK 2012
MIB
• = Management Information Base
• Collection of managed objects, presented a a set
of tables.
• A row in a table = an instance.
14
Introduction & Concepts – Concepts
Using IMA for monitoring Ingres
15. GEMINIT
AUA-UK 2012
MIB
Introduction & Concepts – Concepts
15Using IMA for monitoring Ingres
Communication
Server
DBMS Server
Recovery Server
Name Server
MIB
17. GEMINIT
AUA-UK 2012
Building the MIB
• Creation of an IMA database
• Managed objects
• A simple MIB table
• Meta data about managed objects
• Relationships between MIB tables
• Control objects
• Summary
17Using IMA for monitoring Ingres
18. GEMINIT
AUA-UK 2012
Creation of an IMA database
• Database owned by $ingres
• Database imadb created automatically
• IMA tables are not normal tables
Registered tables that map to managed objects
Registered by user $ingres or ingres
18
Building the MIB
Using IMA for monitoring Ingres
createdb –u’$ingres’ monitordb
19. GEMINIT
AUA-UK 2012
Managed Objects
• Register table that will show managed objects.
• Table ima_mib_objects in imadb.
• One row for every managed object in the
management domain, i.e. flat table.
19
Building the MIB
Using IMA for monitoring Ingres
20. GEMINIT
AUA-UK 2012
Managed Objects
Building the MIB
20Using IMA for monitoring Ingres
register table mon_mib_objects (
server varchar(64) not null not default
is 'SERVER',
classid varchar(64) not null not default
is 'CLASSID',
instance varchar(64) not null not default
is 'INSTANCE',
value varchar(64) not null not default
is 'VALUE',
perms integer2 not null not default
is 'PERMISSIONS')
as import from 'objects'
with update,
dbms = IMA,
structure = unique sortkeyed,
key = (server, classid, instance);
21. GEMINIT
AUA-UK 2012
Managed Objects
Building the MIB
21Using IMA for monitoring Ingres
register table mon_mib_objects (
server varchar(64) not null not default
is 'SERVER',
classid varchar(64) not null not default
is 'CLASSID',
instance varchar(64) not null not default
is 'INSTANCE',
value varchar(64) not null not default
is 'VALUE',
perms integer2 not null not default
is 'PERMISSIONS')
as import from 'objects'
with update,
dbms = IMA,
structure = unique sortkeyed,
key = (server, classid, instance);
register table statement
22. GEMINIT
AUA-UK 2012
Managed Objects
Building the MIB
22Using IMA for monitoring Ingres
data from managed objects/processes
register table mon_mib_objects (
server varchar(64) not null not default
is 'SERVER',
classid varchar(64) not null not default
is 'CLASSID',
instance varchar(64) not null not default
is 'INSTANCE',
value varchar(64) not null not default
is 'VALUE',
perms integer2 not null not default
is 'PERMISSIONS')
as import from 'objects'
with update,
dbms = IMA,
structure = unique sortkeyed,
key = (server, classid, instance);
23. GEMINIT
AUA-UK 2012
Managed Objects
Building the MIB
23Using IMA for monitoring Ingres
one row per managed object
register table mon_mib_objects (
server varchar(64) not null not default
is 'SERVER',
classid varchar(64) not null not default
is 'CLASSID',
instance varchar(64) not null not default
is 'INSTANCE',
value varchar(64) not null not default
is 'VALUE',
perms integer2 not null not default
is 'PERMISSIONS')
as import from 'objects'
with update,
dbms = IMA,
structure = unique sortkeyed,
key = (server, classid, instance);
24. GEMINIT
AUA-UK 2012
Managed Objects
Building the MIB
24Using IMA for monitoring Ingres
extended format
register table mon_mib_objects (
server varchar(64) not null not default
is 'SERVER',
classid varchar(64) not null not default
is 'CLASSID',
instance varchar(64) not null not default
is 'INSTANCE',
value varchar(64) not null not default
is 'VALUE',
perms integer2 not null not default
is 'PERMISSIONS')
as import from 'objects'
with update,
dbms = IMA,
structure = unique sortkeyed,
key = (server, classid, instance);
25. GEMINIT
AUA-UK 2012
Managed Objects
Building the MIB
25Using IMA for monitoring Ingres
permission mask
managed process
class of managed object
instance of managed object
character value of managed object
register table mon_mib_objects (
server varchar(64) not null not default
is 'SERVER',
classid varchar(64) not null not default
is 'CLASSID',
instance varchar(64) not null not default
is 'INSTANCE',
value varchar(64) not null not default
is 'VALUE',
perms integer2 not null not default
is 'PERMISSIONS')
as import from 'objects'
with update,
dbms = IMA,
structure = unique sortkeyed,
key = (server, classid, instance);
26. GEMINIT
AUA-UK 2012
Managed Objects
Building the MIB
26Using IMA for monitoring Ingres
managed object is
uniquely identified
by server, classid
and instance
register table mon_mib_objects (
server varchar(64) not null not default
is 'SERVER',
classid varchar(64) not null not default
is 'CLASSID',
instance varchar(64) not null not default
is 'INSTANCE',
value varchar(64) not null not default
is 'VALUE',
perms integer2 not null not default
is 'PERMISSIONS')
as import from 'objects'
with update,
dbms = IMA,
structure = unique sortkeyed,
key = (server, classid, instance);
27. GEMINIT
AUA-UK 2012
Managed Objects
Building the MIB
27Using IMA for monitoring Ingres
some managed objects are
updateable = control objects
register table mon_mib_objects (
server varchar(64) not null not default
is 'SERVER',
classid varchar(64) not null not default
is 'CLASSID',
instance varchar(64) not null not default
is 'INSTANCE',
value varchar(64) not null not default
is 'VALUE',
perms integer2 not null not default
is 'PERMISSIONS')
as import from 'objects'
with update,
dbms = IMA,
structure = unique sortkeyed,
key = (server, classid, instance);
28. GEMINIT
AUA-UK 2012
Managed Objects
• Ingres 10 on Windows
• Ingres 9.2.1 on Linux (Red Hat)
28
Building the MIB
Using IMA for monitoring Ingres
Server # Objects # Classes
Name Server 1246 124
DBMS Server 31122 1102
Recovery Server 31017 1052
Communication Server 1142 116
Server # Objects # Classes
Name Server 1154 116
DBMS Server 32339 1109
Recovery Server 32418 1050
Communication Server 953 64
Data Access Server 18976 88
29. GEMINIT
AUA-UK 2012
Managed Objects – Class ids
• Examples:
• Class ids
form hierarchically structured name space
levels separated by a period (.)
‐ first level exp: experimental branch
‐ second level: facility (ADF, CLF, DMF, GCF, SCF, ...)
‐ third level: part of facility
29
Building the MIB
Using IMA for monitoring Ingres
exp.adf.adg.dt_name
exp.clf.unix.cs.scb_bio
exp.clf.unix.cs.scb_stk_size
exp.dmf.dm0p.bm_bufcnt
exp.dmf.lg.ldb_d_first_la
exp.gcf.gca.assoc.session_protocol
exp.gcf.gcn.server.class
exp.glf.mo.meta.classid
exp.scf.scs.scb_query
30. GEMINIT
AUA-UK 2012
Managed Objects – Class ids
• Managed objects per facility (Ingres 10, Linux)
30
Building the MIB
Using IMA for monitoring Ingres
Class id level 2 Count
adf 33464
clf 1965
dmf 11590
gcf 366
glf 17998
gwf 278
psf 2
qsf 60
rdf 292
scf 1099
sxf 25
majority for definitions of data
types, operator and functions
majority for metadata about
managed objects
DMF cache, logging and
locking system, ...
31. GEMINIT
AUA-UK 2012
Managed Objects – Examples
• exp.scf.scs.scb_query
exp: experimental
scf: system control facility (MO is owned by the SCF)
scs: sequencer (in the scs code block)
scb: session control block
query: the current query
31
Building the MIB
Using IMA for monitoring Ingres
32. GEMINIT
AUA-UK 2012
Managed Objects – Examples
• Other examples:
exp.scf.scs.scb_self: session identifier
exp.scf.scs.scb_euser: effective user
exp.scf.scs.scb_database: the database the session is
connected with
exp.dmf.dm0p.bm_hit: number of DMF cache hits
exp.dmf.lk.lkd_stat.deadlock: number of deadlocks
32
Building the MIB
Using IMA for monitoring Ingres
34. GEMINIT
AUA-UK 2012
Managed Objects – Instances
Building the MIB
34Using IMA for monitoring Ingres
+--------------------------------------+----------------------------------------------------------------+
|classid |value |
+--------------------------------------+----------------------------------------------------------------+
|exp.scf.scs.scb_client_connect |demodb |
|exp.scf.scs.scb_client_host |GEMINIT-FB |
|exp.scf.scs.scb_client_info |user='fb',host='GEMINIT-FB',tty='GEMINIT-FB',pid=8588,conn='demo|
|exp.scf.scs.scb_client_pid |8588 |
|exp.scf.scs.scb_client_tty |GEMINIT-FB |
|exp.scf.scs.scb_client_user |fb |
|exp.scf.scs.scb_database |demodb |
|exp.scf.scs.scb_dblockmode |shared |
|exp.scf.scs.scb_dbowner |fb |
|exp.scf.scs.scb_description |(unknown) |
|exp.scf.scs.scb_euser |fb |
|exp.scf.scs.scb_group | |
|exp.scf.scs.scb_index |00342819072 |
|exp.scf.scs.scb_lastquery | select * from airline |
|exp.scf.scs.scb_pid |00000000000000009296 |
|exp.scf.scs.scb_ptr |00342819072 |
|exp.scf.scs.scb_query | |
|exp.scf.scs.scb_role | |
|exp.scf.scs.scb_ruser |fb |
|exp.scf.scs.scb_s_name |fb |
|exp.scf.scs.scb_self |00342819072 |
|exp.scf.scs.scb_terminal |console |
...
+--------------------------------------+----------------------------------------------------------------+
select classid, value
from mon_mib_objects
where classid like 'exp.scf.scs.scb_%'
and instance = '00342819072' order by 1;
35. GEMINIT
AUA-UK 2012
A simple MIB table
• Managed object values of the same instance
become values in columns.
• These tables are called crosstabs.
35
Building the MIB
Using IMA for monitoring Ingres
36. GEMINIT
AUA-UK 2012
A simple MIB table
Building the MIB
36Using IMA for monitoring Ingres
register table statement
register table mon_sessions_simple (
server varchar(64) not null not default
is 'SERVER',
session_id varchar(32) not null not default
is 'exp.scf.scs.scb_self',
effective_user varchar(32) not null not default
is 'exp.scf.scs.scb_euser',
db_name varchar(32) not null not default
is 'exp.scf.scs.scb_database',
session_query varchar(1000) not null not default
is 'exp.scf.scs.scb_query')
as import from 'tables'
with dbms = IMA,
structure = unique sortkeyed,
key = (server, session_id);
37. GEMINIT
AUA-UK 2012
A simple MIB table
Building the MIB
37Using IMA for monitoring Ingres
crosstab
register table mon_sessions_simple (
server varchar(64) not null not default
is 'SERVER',
session_id varchar(32) not null not default
is 'exp.scf.scs.scb_self',
effective_user varchar(32) not null not default
is 'exp.scf.scs.scb_euser',
db_name varchar(32) not null not default
is 'exp.scf.scs.scb_database',
session_query varchar(1000) not null not default
is 'exp.scf.scs.scb_query')
as import from 'tables'
with dbms = IMA,
structure = unique sortkeyed,
key = (server, session_id);
38. GEMINIT
AUA-UK 2012
A simple MIB table
Building the MIB
38Using IMA for monitoring Ingres
class ids
managed process
register table mon_sessions_simple (
server varchar(64) not null not default
is 'SERVER',
session_id varchar(32) not null not default
is 'exp.scf.scs.scb_self',
effective_user varchar(32) not null not default
is 'exp.scf.scs.scb_euser',
db_name varchar(32) not null not default
is 'exp.scf.scs.scb_database',
session_query varchar(1000) not null not default
is 'exp.scf.scs.scb_query')
as import from 'tables'
with dbms = IMA,
structure = unique sortkeyed,
key = (server, session_id);
39. GEMINIT
AUA-UK 2012
A simple MIB table
Building the MIB
39Using IMA for monitoring Ingres
session uniquely
identified by server
process and session id
register table mon_sessions_simple (
server varchar(64) not null not default
is 'SERVER',
session_id varchar(32) not null not default
is 'exp.scf.scs.scb_self',
effective_user varchar(32) not null not default
is 'exp.scf.scs.scb_euser',
db_name varchar(32) not null not default
is 'exp.scf.scs.scb_database',
session_query varchar(1000) not null not default
is 'exp.scf.scs.scb_query')
as import from 'tables'
with dbms = IMA,
structure = unique sortkeyed,
key = (server, session_id);
41. GEMINIT
AUA-UK 2012
Meta data on managed objects
• Which managed object classes can be used in
same MIB table?
• Managed objects with class id in namespace
‘exp.glf.mo.meta’ represent meta data on
managed objects.
glf = General Library Facility
41
Building the MIB
Using IMA for monitoring Ingres
42. GEMINIT
AUA-UK 2012
Meta data on managed objects
• Table registration
42
Building the MIB
Using IMA for monitoring Ingres
register table mon_mo_meta (
server varchar(64) not null not default is 'SERVER',
classid varchar(64) not null not default is 'exp.glf.mo.meta.classid',
class varchar(64) not null not default is 'exp.glf.mo.meta.class',
oid varchar(8) not null not default is 'exp.glf.mo.meta.oid',
perms integer2 not null not default is 'exp.glf.mo.meta.perms',
size integer2 not null not default is 'exp.glf.mo.meta.size',
xindex varchar(64) not null not default is 'exp.glf.mo.meta.index')
as import from 'tables'
with dbms = IMA,
structure = unique sortkeyed,
key = (server, classid);
44. GEMINIT
AUA-UK 2012
Meta data on managed objects
• Managed object classes which have same xindex
can be used in same MIB table.
44
Building the MIB
Using IMA for monitoring Ingres
46. GEMINIT
AUA-UK 2012
Control objects
• Permissions column in mon_mib_objects and
mon_mo_meta: who can read/write.
• Some examples of managed objects that can be
updated:
exp.scf.scs.scb_remove_session
remove a session on a DBMS server
exp.gwf.gwm.session.control.add_vnode
add process of a vnode to the management domain
exp.scf.scd.server.control.shut
set a DBMS server shut
46
Building the MIB
Using IMA for monitoring Ingres
47. GEMINIT
AUA-UK 2012
Control objects - Example
• Add all processes in local instance to
management domain (ex. in imadb)
47
Building the MIB
Using IMA for monitoring Ingres
UPDATE ima_mib_objects
SET value = DBMSINFO(‘IMA_VNODE’)
WHERE classid = ‘exp.gwf.gwm.session.control.add_vnode’
AND instance = ‘0’
AND server = DBMSINFO(‘IMA_SERVER’);
useful dbmsinfo parameters:
• ima_vnode
• ima_session
• ima_server
48. GEMINIT
AUA-UK 2012
Control objects - Procedures
• To simplify using some of these control objects, in
the imadb database you’ll find some database
procedures:
ima_remove_session(session_id, server_id)
ima_shut_server(server_id)
48
Building the MIB
Using IMA for monitoring Ingres
49. GEMINIT
AUA-UK 2012
Summary
• Determine which information is required.
• Identify the management objects of interest
using the tables:
mon_mib_objects (ima_mib_objects in imadb),
mon_mo_meta (check same xindex) (ima_mo_meta).
• Identify the primary key for the MIB table, which
uniquely identifies each instance.
• Identify the relationships between MIB tables, so
you know how to join.
• Register a table.
49
Building the MIB
Using IMA for monitoring Ingres
51. GEMINIT
AUA-UK 2012
Using the MIB for monitoring
• Monitoring
• Real-time data
• Historical data
• Alerts
51Using IMA for monitoring Ingres
52. GEMINIT
AUA-UK 2012
Monitoring
• Different levels of detail:
summarized/aggregated:
‐ number of inbound and outbound connections per
communication server,
‐ number of active transactions,
‐ etc.
fully detailed:
‐ list of queries being executed,
‐ list of database procedures in QSF cache,
‐ list of locks,
‐ etc.
52
Using the MIB for monitoring
Using IMA for monitoring Ingres
53. GEMINIT
AUA-UK 2012
Monitoring
• Different ways to present:
textual: formatted text,
tabular: rows in a table,
graphical: gauges, pie charts, bar charts, ...
53
Using the MIB for monitoring
Using IMA for monitoring Ingres
54. GEMINIT
AUA-UK 2012
Real-time data
• MIB tables show only real-time information:
reads are dirty,
no transaction control on MIB tables (no locking).
• Information presented in real-time monitoring
reflects current status.
• Retrieve data from the IMA tables and present it.
• Examples:
list of queries currently being executed,
list of current inbound connections on
communication server vs maximum possible,
etc.
54
Using the MIB for monitoring
Using IMA for monitoring Ingres
55. GEMINIT
AUA-UK 2012
Historical data
• Keep record of historical data ourselves
• At regular time intervals, insert data from IMA
tables into “normal” tables: trace
• Useful for trend analysis, after-the-fact
analysis, etc.
55
Using the MIB for monitoring
Using IMA for monitoring Ingres
time
trace 1 trace 2 trace 3 trace 4 trace 5 trace 6 trace 7
56. GEMINIT
AUA-UK 2012
Historical data – simple tracing
• Trace = simple insert from select on MIB table(s)
into normal table.
• Have unique key for each row inserted.
• Examples:
DMF cache tracing,
monitor the evolution of DMF cache info/stats,
QSF and RDF cache tracing,
number of inbound connections per communication
server,
etc.
56
Using the MIB for monitoring
Using IMA for monitoring Ingres
57. GEMINIT
AUA-UK 2012
Historical data – simple tracing - example
• DMF cache tracing: at each trace
insert current cache statistics to a trace table
57
Using the MIB for monitoring
Using IMA for monitoring Ingres
58. GEMINIT
AUA-UK 2012
Historical data – simple tracing - example
• Step 1. Create trace table
• Step 2. Create sequence for counter
58
Using the MIB for monitoring
Using IMA for monitoring Ingres
create table trc_dmf_cache_stats as
select trc_counter = int4(0),
trc_timestamp = date('now'),
s.*
from ima_dmf_cache_stats s
where 1 = 0;
create sequence trc_counter_dmf_cache
as integer4
start with 1
increment by 1
nomaxvalue
nocache;
59. GEMINIT
AUA-UK 2012
Historical data – simple tracing - example
• Step 3. Create the trace procedure
• Step 4. Perform trace (at regular intervals)
• Step 5. Present/analyse the traced data
59
Using the MIB for monitoring
Using IMA for monitoring Ingres
create procedure do_trace_dmf_cache_status =
declare
counter = integer4 not null not default;
begin
counter = next value for trc_counter_dmf_cache;
insert into trc_dmf_cache_stats
select :counter,
date('now'),
s.*
from ima_dmf_cache_stats s;
commit;
end;
execute procedure do_trace_dmf_cache_status;
60. GEMINIT
AUA-UK 2012
Historical – advanced tracing
• Trace = more than a simple insert.
• Examples:
keeping track of how long a transaction is active,
keeping track of how long a transaction blocks other
transactions,
keeping track of how long a resource is locked by a
session.
• Add some analysis to the trace.
60
Using the MIB for monitoring
Using IMA for monitoring Ingres
61. GEMINIT
AUA-UK 2012
Historical – advanced tracing – example
• Query duration tracing: at each trace
Check if query was there during previous trace:
‐ if not, then insert the query in the tracing table,
‐ if it was, then update the duration of the query in the trace
table.
Optional:
‐ Move ended queries to a history table.
‐ Delete ended queries that did not take longer than a given
number of seconds.
61
Using the MIB for monitoring
Using IMA for monitoring Ingres
62. GEMINIT
AUA-UK 2012
Historical – advanced tracing – example
• Step 1. Register the MIB table
• Step 2. Create the trace table
62
Using the MIB for monitoring
Using IMA for monitoring Ingres
register table mon_queries (
server varchar(64) not null not default is 'SERVER',
session_id varchar(32) not null not default is 'exp.scf.scs.scb_self',
effective_user varchar(32) not null not default is 'exp.scf.scs.scb_euser',
db_name varchar(32) not null not default is 'exp.scf.scs.scb_database',
session_query varchar(1000) not null not default is 'exp.scf.scs.scb_query')
as import from 'tables'
with dbms = IMA,
structure = unique sortkeyed,
key = (server, session_id);
create table trc_queries as
select begin_counter = int4(0),
begin_timestamp = date('now'),
end_counter = int4(0),
end_timestamp = date('now'),
q.*
from mon_queries q
where 1 = 0;
63. GEMINIT
AUA-UK 2012
Historical – advanced tracing – example
• Step 3. Create sequence for counter
• Step 4. Create the trace procedure (part 1)
63
Using the MIB for monitoring
Using IMA for monitoring Ingres
create sequence trc_counter_queries
as integer4
start with 1
increment by 1
nomaxvalue
nocache;
create procedure do_trace_queries =
declare
counter = integer4 not null not default;
begin
counter = next value for trc_counter_dmf_cache;
update trc_queries t
from mon_queries q
set end_counter = :counter,
end_timestamp = date('now')
where t.session_id = q.session_id
and t.session_query = q.session_query
and q.session_query != ''
and q.session_id != dbmsinfo('ima_session');
set end counter and
timestamp for queries
that were running at
previous trace
64. GEMINIT
AUA-UK 2012
Historical – advanced tracing – example
• Step 4. Create the trace procedure (part 2)
64
Using the MIB for monitoring
Using IMA for monitoring Ingres
insert into trc_queries
select :counter,
date('now'),
:counter,
date('now'),
q.*
from mon_queries q
where q.session_query != ''
and q.session_id != dbmsinfo('ima_session')
and not exists (
select *
from trc_queries t
where t.session_id = q.session_id
and t.session_query = q.session_query
and t.end_counter = :counter);
delete from trc_queries
where end_counter = :counter - 1
and interval('sec',
end_timestamp - begin_timestamp) < 30;
commit;
end;
insert queries that
were not running
at previous trace
remove queries
not running longer
than 30 seconds
65. GEMINIT
AUA-UK 2012
Historical – advanced tracing – example
• Step 5. Perform the trace
• Step 6. Present/analyse the traced data
65
Using the MIB for monitoring
Using IMA for monitoring Ingres
execute procedure do_trace_queries;
66. GEMINIT
AUA-UK 2012
Alerts
• Triggered when predefined conditions are met.
• Action(s) performed when triggered.
• Can use
current IMA data (no tracing),
historical data (with tracing):
‐ check for conditions after each trace.
• Implemented using scripting/programming
language:
“external” actions cannot be executed in database
procedure.
66
Using the MIB for monitoring
Using IMA for monitoring Ingres
67. GEMINIT
AUA-UK 2012
Alerts - Examples
• Conditions:
a query taking longer than a given number of
seconds,
the number of inbound connections on a
communication server exceeding 90% of the
maximum,
a transaction blocking other transactions for more
than a given number of seconds,
the hit ratio of a DMF cache dropping under a given
percentage,
etc.
67
Using the MIB for monitoring
Using IMA for monitoring Ingres
68. GEMINIT
AUA-UK 2012
Alerts - Examples
• Actions:
sending an e-mail or any type of message,
removing the blocking session,
updating the status on a central monitoring
dashboard,
etc.
68
Using the MIB for monitoring
Using IMA for monitoring Ingres
70. GEMINIT
AUA-UK 2012
Lockman
• A tool to trace and analyze (b)locking problems:
detailed information about blocking problems is
stored in tables for further analysis.
• This is a commercial tool developed by GEMINIT!
contact lockman@geminit.be for further information
• A few customers are already using it in
production!
helps to find
‐ missing commits/rollbacks,
‐ missing indexes,
‐ long queries,
‐ long transactions.
Using IMA for monitoring Ingres 70
71. GEMINIT
AUA-UK 2012
Lockman
• Modes:
real-time: analysis of current situation
tracing (as service):
‐ keeps history of (b)locking problems
‐ support for analysis of history
• 2 levels of detail
summary
full detail
• Interface:
command line interface
web interface in pipeline
Using IMA for monitoring Ingres 71
73. GEMINIT
AUA-UK 2012
Lockman features
• Real-time
Which sessions/transactions are currently blocking
other sessions/transactions?
Which sessions/transactions are currently blocked by
other sessions/transactions?
Which are the root blocking sessions?
Show blocking hierarchy.
What resources are locked by a session?
Remove root blocking session.
Using IMA for monitoring Ingres 73
74. GEMINIT
AUA-UK 2012
Lockman features
• Analysis of tracing results
Which sessions/transactions were blocking other
sessions/transactions?
Which sessions/transactions were blocked by other
sessions/transactions?
Which were the root blocking sessions?
What resources were locked by a session?
Using IMA for monitoring Ingres 74
75. GEMINIT
AUA-UK 2012
Lockman features
• Filter results during analysis:
on database,
on table,
on time.
• Support for archiving of historal data.
• Support for include scripts:
contain lockman commands.
• Support for command aliases:
e.g. to translate, for command shortcuts.
• Commands and output can be logged (by default)
for later analysis.
Using IMA for monitoring Ingres 75
76. GEMINIT
AUA-UK 2012
Lockman features
• Alerter
Types:
‐ root blocking session,
‐ blocking session,
‐ blocked session,
‐ Query.
Condition:
‐ longer than given number of seconds.
Action:
‐ execute lockman command(s),
‐ run shell script, e.g. to send an e-mail.
Using IMA for monitoring Ingres 76
77. GEMINIT
AUA-UK 2012
Lockman output example
77Using IMA for monitoring Ingres
ROOT LOCKING SESSION(S):
DATABASE dbserver.dba.mydatabase
********************************
-----------------------------------------------------------------------------------------------
* SESSION id: 0000000046913824268416 terminal: batch
real user: sarah effective user: sarah
group: role:
description: (unknown)
CLIENT host: KCTXVS02 user: sarah
process id: 149560 terminal: KCTXVS02
connect string: prod::mydatabase
TRANSACTION id: 00004F72570D9E48
+ SESSION(S) BLOCKED BY TRANSACTION
- RESOURCE id: 1016 TABLE mydatabase.dba.mytable
key: KEY(TABLE,DB=4F8D9A0F,TABLE=[852,0])
lock granted: exclusive, requested: exclusive, state: granted
QUERY description: (unknown)
current query:
previous query: UPDATE mytable SET col3 = 'X' WHERE col3 = 'A'
BLOCKED SESSION(S)
. SESSION id: 0000000046913823834624 terminal: batch
real user: john effective user: john
group: role:
description: (unknown)
CLIENT host: KCTXVS01 user: john
process id: 149561 terminal: KCTXVS01
connect string: PROD::mydatabase/INGRES
TRANSACTION id: 00004F72570D9E86
QUERY description: (unknown)
current query: SELECT col1, col2 FROM mytable
previous query: SELECT col1, col2 FROM mytable2
RESOURCE id: 1016 TABLE mydatabase.dba.mytable
key: KEY(TABLE,DB=4F8D9A0F,TABLE=[852,0])
lock granted: null, requested: intended shared, state: waiting