wiki:MapGuideRfc87

MapGuide RFC 87 - SiteInformation enhancements

This page contains a change request (RFC) for the MapGuide Open Source project. More MapGuide RFCs can be found on the RFCs page.

Status

RFC Template Version(1.0)
Submission DateOct. 01, 2009
Last Modified(Bruce Dechant) Timestamp
Author(Bruce Dechant)
RFC Statusadopted
Implementation Statusimplemented
Proposed Milestone(2.2)
Assigned PSC guide(s)(Bruce Dechant)
Voting HistoryOctober 13, 2009
+1Bob, Bruce, Jason, Tom, Trevor
+0
-0
-1
no voteAndy, Haris, Kenneth, Paul

Overview

This proposal is to add additional memory statistics to the SiteInformation schema.

Motivation

When running stress tests on the server or just quering the current state of the server it would be nice to know the current working set memory and the virtual memory being used by the server.

Proposed Solution

A new SiteInformation schema will be added with the following new statistics:

WorkingSet - The working set memory of the MapGuide server in bytes.
VirtualMemory - The virtual memory of the MapGuide server in bytes.

The new SiteInformation schema version will be SiteInformation-2.2.0.xsd

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="2.2.0">
  <xs:element name="SiteInformation">
    <xs:annotation>
      <xs:documentation>Site Information</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="SiteInformationType">
          <xs:attribute name="version" type="xs:string" fixed="2.2.0"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
    <xs:complexType name="SiteInformationType">
      <xs:sequence>
        <xs:element name="Server">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="IpAddress" type="xs:string">
                <xs:annotation>
                  <xs:documentation>The MapGuide server's Ip address.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="DisplayName" type="xs:string">
                <xs:annotation>
                  <xs:documentation>The MapGuide server's display name.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="Status" type="xs:string">
                <xs:annotation>
                  <xs:documentation>The MapGuide server's status. Either Online or Offline</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="Version" type="xs:string">
                <xs:annotation>
                  <xs:documentation>The MapGuide server's version.</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="OperatingSystem">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="AvailablePhysicalMemory" type="xs:integer">
                      <xs:annotation>
                        <xs:documentation>The available physical memory for the operating system in bytes.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="TotalPhysicalMemory" type="xs:integer">
                      <xs:annotation>
                        <xs:documentation>The total physical memory for the operating system in bytes.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="AvailableVirtualMemory" type="xs:integer">
                      <xs:annotation>
                        <xs:documentation>The available virtual memory for the operating system in bytes.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="TotalVirtualMemory" type="xs:integer">
                      <xs:annotation>
                        <xs:documentation>The total virtual memory for the operating system in bytes.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Version" type="xs:string">
                      <xs:annotation>
                          <xs:documentation>The operating system version.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="Statistics">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="AdminOperationsQueueCount" type="xs:integer">
                      <xs:annotation>
                        <xs:documentation>The number of operations in the Admin queue.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="ClientOperationsQueueCount" type="xs:integer">
                      <xs:annotation>
                        <xs:documentation>The number of operations in the Client queue.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="SiteOperationsQueueCount" type="xs:integer">
                      <xs:annotation>
                        <xs:documentation>The number of operations in the Site queue.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="AverageOperationTime" type="xs:integer">
                      <xs:annotation>
                        <xs:documentation>The average time it takes to process an operation in milliseconds.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="CpuUtilization" type="xs:integer">
                      <xs:annotation>
                        <xs:documentation>The cpu utilization as a percentage.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="WorkingSet" type="xs:integer">
                      <xs:annotation>
                        <xs:documentation>The working set memory of the MapGuide server in bytes.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="VirtualMemory" type="xs:integer">
                      <xs:annotation>
                        <xs:documentation>The virtual memory of the MapGuide server in bytes.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="TotalOperationTime" type="xs:integer">
                      <xs:annotation>
                        <xs:documentation>The total operation time of the MapGuide server in seconds.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="ActiveConnections" type="xs:integer">
                      <xs:annotation>
                        <xs:documentation>The number of active connections to the MapGuide server.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="TotalConnections" type="xs:integer">
                      <xs:annotation>
                        <xs:documentation>The total number of connections that have been made to the MapGuide server.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="TotalOperationsProcessed" type="xs:integer">
                      <xs:annotation>
                        <xs:documentation>The total number of operations processed by the MapGuide server.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="TotalOperationsReceived" type="xs:integer">
                      <xs:annotation>
                        <xs:documentation>The total number of operations received by the MapGuide server.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Uptime" type="xs:integer">
                      <xs:annotation>
                        <xs:documentation>The total time the MapGuide server has been running in seconds.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="CacheSize" type="xs:integer">
                      <xs:annotation>
                        <xs:documentation>The current number of entries in the MapGuide server cache.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="CacheDroppedEntries" type="xs:integer">
                      <xs:annotation>
                        <xs:documentation>The total number of entries in the MapGuide server cache that have been dropped.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
</xs:schema>

Implications

This is new schema only. There will be no effect on existing applications. However, in order to get the new schema you must use the new version when doing the request.

Test Plan

Check that new schema returns new information.

Funding/Resources

Supplied by Autodesk.

Addendum, Oct. 28, 2009

Updated schemas to support multiple servers in a site.

Addendum, Dec. 9, 2009

Added the following additional statistics to the schema:

CacheSize - The current number of entries in the MapGuide server cache.
CacheDroppedEntries - The total number of entries in the MapGuide server cache that have been dropped.
Last modified 14 years ago Last modified on Apr 5, 2010, 12:20:20 PM
Note: See TracWiki for help on using the wiki.