Analysis Model Reference
Feature
Germain Data Model is customizable and objects stored in it as well.
Data Model
Below is sample of what the Germain Data Model may look like, including Dimensions and Facts.
For the complete view of your data model, use this url: https://INSTANCE_NAME
/germainapm/query/metadata/types
Dimensions
Time
time.year
time.month
time.day
time.hour
time.minute
System
system.name
system.hostname
system.type
system.environment
system.location.continent
system.location.country
system.location.region
system.location.city
Target
target.name
target.hostname
target.type
target.environment
target.location.continent
target.location.country
target.location.region
target.location.city
User
user.name
user.department
user.group
user.role
user.type
user.location.continent
user.location.country
user.location.region
user.location.city
UserAgent
userAgent.device
userAgent.family
userAgent.browser
userAgent.os
PageDimension
page.path
page.query
page.title
CampaignDimension
campaign.name
campaign.source
campaign.medium
campaign.term
campaign.content
HierarchyDimension
hierarchy.level1
hierarchy.level2
hierarchy.level3
hierarchy.level4
HttpRequestDimension
http.path
http.query
http.method
http.status
http.message
Application
application.name
application.component
Database
Siebel
siebel.screen
siebel.view
siebel.applet
siebel.command
Referer
ref.url
ref.type
ref.subtype
MobileDevice
device.manufacturer
device.brand
device.model
device.os
device.osName
device.osVersion
device.sdkVersion
device.resolution
device.location.continent
device.location.country
device.location.region
device.location.city
NetworkDimension
network.type
network.connectionType
network.fastConnection
network.ip
Facts
GenericBusinessProcess (generic BPs)
type
name
sessionId
status
currentStep
anyStepOutside
businessObject
color
progress
GenericBusinessProcessStep (steps for generic BPs)
type
name
bpId
bpClass
label
prevStepLabel
factId
factClass
sessionId
status
outsideStep
businessObject
color
SiebelBusinessProcess (Siebel related BPs)
same as GenericBusinessProcess + additional attributes:
Siebel
SiebelBusinessProcessStep (Siebel steps for generic BPs)
same as GenericBusinessProcessStep + additional attributes:
Siebel
GenericEvent
type
name
pid
tid
sessionId
businessObject
color
GenericMetric (e.g.CPU Usage)
type
name
pid
tid
sessionId
color
GenericTransaction
type
name
pid
tid
sessionId
status
businessObject
color
MobileEvent
name
pid
sessionId
businessObject
color
MobileMetric
name
pid
sessionId
businessObject
color
MobileTransaction
name
pid
sessionId
businessObject
color
MobileProcessMetric
name
pid
state
color
UxEvent (e.g. Mouse click)
type
name
domName
domLabel
displayedName
sessionId
businessObject
color
success
UxMetric (e.g. Response size)
type
name
sessionId
businessObject
color
value
UxTransaction
type
name
sessionId
businessObject
color
duration
UxChangeTransaction (user input change transaction)
type
name
domName
domLabel
domValue
sessionId
businessObject
duration
success
color
UxSession (UX session replay data point)
type
name
correlationId
sessionId
returningUser
duration
activeDuration
errorCount
positiveFeedbackCount
negativeFeedbackCount
feedbackCommentCount
pageVisited
status
color
OutboundHttpRequest (HTTP request transaction)
type
name
sessionId
success
businessObject
color
requestBody
responseBody
cached
compressed
aborted
duration
redirectDuration
stalledDuration
dnsDuration
connectDuration
sslDuration
waitDuration
downloadDuration
responseSize
activeDuration
OutboundDocumentRequest(HTTP request transaction)
same as OutboundHttpRequest
domProcessDuration
domLoadDuration
SiebelOutboundHttpRequest (Siebel HTTP request transaction)
same as OutboundHttpRequest + additional attributes:
InboundHttpRequest
Source
name
sessionId
success
businessObject
color
duration
requestSize
responseSize
SiebelTransaction (base model for other Siebel related transactions)
SiebelWorkflowTransaction
same as SiebelTransaction
SiebelWorkflowStepTransaction
same as SiebelTransaction
SiebelWorkflowServiceTransaction
same as SiebelTransaction + additional attributes:
method
SiebelWebServiceTransaction
same as SiebelTransaction + additional attributes:
method
SiebelWebEngineTransaction
same as SiebelTransaction + additional attributes:
method
SiebelUserTransaction
same as SiebelTransaction + additional attributes:
target
SiebelToolkitServiceTransaction
same as SiebelTransaction + additional attributes:
method
SiebelTaskServiceTransaction
same as SiebelTransaction + additional attributes:
method
SiebelStateServiceTransaction
same as SiebelTransaction + additional attributes:
method
SiebelDatabaseTransaction
same as SiebelTransaction + additional attributes:
queryId
SiebelServiceTransaction
same as SiebelTransaction + additional attributes:
method
SiebelErrorEvent
same as GenericEvent + additional attributes:
taskId
ProfilerSnapshot (CPU snapshot for Java and .net)
type
name
pid
color
ProcessMetric (OS process metric)
NetworkMetric (network latency metric)
Source (attribute starts with source. but has same attributes as System)
Target (attribute starts with target. but has same attributes as System)
type
name
pid
color
ThreadMetric (OS thread metric)
JavaTransaction
className
name
pid
tid
sessionId
businessObject
success
color
JavaHttpRequestTransaction
same as JavaTransaction + additional attributes:
method
status
path
query
ip
headers
JavaDatabaseTransaction
same as JavaTransaction + additional attributes:
queryId
queryText
JavaEvent
className
name
pid
tid
sessionId
businessObject
success
color
Defining a Portlet Constraint
A basic constraint is defined as
(<model-attribute> == '<value>')
Where <model-attribute> is a specific model attribute from an object and <value> is the value of the constraint. For example, if there is a user with the username jsmith, then in order to limit the data of a portlet to just data associated with jsmith, you would specify
(user.name == 'jsmith')
You can create specify more than one member using the following
(user.name == 'jsmith') || (user.name == 'bjones')
This is essentially asking for data associated with jsmith or bjones.
If you need to constrain more than one dimension the syntax is as follows
((user.name == 'jsmith') || (user.name == 'bjones')) && (application.name == 'Siebel')
Now we're specifying jsmith or bjones (users) and Siebel (application).
Defining a Portlet Pivot
The syntax for a pivot is similar but you only need to specify model attribute, for example
user.role
This would pivot the data all user roles.
Feature available in Germain v2022.2 or later