8/12/2019 GSM-Actix
1/64
GSM Query Training
MCI
1/8 3/8
8/12/2019 GSM-Actix
2/64
Course Structure (2.5 days)
Introduction to the Analysis Manager
Query types overview
Query buildingCommonly-used functions
Analysing information held in different Layer
3 messages
Formatting results
Exporting queries to create report templates
Tips and Tricks for faster and more efficient
query building
8/12/2019 GSM-Actix
3/64
What do we troubleshoot?Event Detection & Drive Test Analysis
Dropped Call
Call SetupFailure
Coverage
Problem
HandoverProblem
Interference
Poor Signal
StrengthPoor Voice
Quality
No serving cell
DominanceMissing neighbor
Cross Feeder
8/12/2019 GSM-Actix
4/64
Query Examples & ExercisesCoverage Holes(bad RxLev coverage-idle, bad server coverage)
Interference Analysis(Cell BCCHs in areas with good coverage but poor quality)
Server Dominance Analysis(Areas where the server is weaker than the strongestneighbour; too many strong signals)
Coverage Island Analysis(Display the distribution of the Timing Advance for quickcoverage island analysis)
File and MS Analysis(Generate statistics for each call in the logfile)
8/12/2019 GSM-Actix
5/64
Query Examples & ExercisesContinued
Dropped Call Statistics & Analysis(Analyse each dropped call to report possible diagnosis)
Merge Handset Data Analysis(Generate statistics at each call setup from both drivetest files)
Call Sequence Messaging
(Analyse the Layer 3 messaging for call setupprocedures)
Create Reports Template(Single & Multiple Files Report Template)
8/12/2019 GSM-Actix
6/64
Before We Begin (page 9)Change theConfigurationCellrefs file set to theCELLREFS_SVS_QUERY.TXTfile
GPS Interpolation set to disabled
Time offsets from GMT should both be set to 0(for swi tchand mobi le)
Binning set to message = 1.
Scanner Load Mode set to Load all scannerdata
Load Speed Default set to Load allGSM Bands Used set to 900, 1800 and 1900.
GPS Transformation set to Default (degrees)
In the Tools > Display Thresholdswindow,ensure the values are set to the defaults.
8/12/2019 GSM-Actix
7/64
GSM Data group in Actix SoftwareStatistics DataInformation about handoverinterval and duration
Dedicated Radio LinkOnce a call has beenestablished, parameters that are associatedwith the cell serving the call are containedhere.
Device InfoInformation about thespecifications of the mobile making the call.
Serving Cell ParametersInformation aboutthe serving cell identity, serving BCCH, andBSIC.
Downlink MeasurementsServing RxLevand RxQual measurements made by themobile, which are also broken out by ARFCN.
8/12/2019 GSM-Actix
8/64
GSM Data group in Actix SoftwareContinueNeighbor Cell InfoBCCH, BSIC, and RxLev foreach neighbor. In addition, all neighbormeasurements are broken out by channel
number.Target Cell InfoInformation about the targetcell for a handoff including BCCH and BSIC.
Event DataCall events triggered by Layer 3messaging or registered by the drive test vendors
equipment. If an event is not present in the tree, itdid not occur in the file.
GPRS MeasurementsMetrics associated withGPRS data calls, including throughput, codingscheme, channel usage, TBF information and
events can be found here.
8/12/2019 GSM-Actix
9/64
GSM Data group in Actix SoftwareContinue
AMR Measurements Call setup and
inband signaling measurements
extracted from AMR-enabled handsetsare contained in this group.
Vendor SpecificMeasurements that
are specific to the particular collection
device used. Specific events registeredby the T+M vendors hardware not
derived from layer 3 messaging by
Analyzer are included here.
8/12/2019 GSM-Actix
10/64
8/12/2019 GSM-Actix
11/64
Independent Node Datagroup in Actix Software(Technology & vendorindependent measurements)
Device Info contains settings for the mobile
device on which data is logged.
GPS Data contains mobile longitude, latitude,distance travelled, and speed.
Message InfoThe date and time for the start
of the data stream can be found in this group.
This information is useful when building reporttemplates.
File Info contains label and timestamp
information for the logfile under investigation.
8/12/2019 GSM-Actix
12/64
Independent Node Datagroup in Actix SoftwareContinuedSite Data NodeIf a valid cellref and a logfile are loaded, Actix software
will automatically calculate these measurements take
from both drive test and the cell site information ServingCellDistancedistance, in meters, to the
current serving sector ServingCellLatlatitude of serving cellsite at each
point of the drive route ServingCellLonlongtitude of serving cellsite at
each point of the drive route ServingCellID/SectorIDAlphanumeric identity from
the cellref file of the serving site name and sectorname
NeighborCellDistance/Lat/Long/CellID/SectorIDSame info as above for each neighbor positionalong the drive
8/12/2019 GSM-Actix
13/64
Parameter & Format Groups
Parameters (for frequentuse)page 10 & 11
Useful Format Groups
(for frequent use)
page 46
8/12/2019 GSM-Actix
14/64
How to find/search attributes?
ToolFind attributes
orPress Ctrl-Shift-F
GSM_Um_Msg_Type
8/12/2019 GSM-Actix
15/64
Queries
Queries are simple or complex expressions
used to extractmeaningful performance
data, based onuser-defined thresholdsor
the value of other expressions.
The result of the query helps you to highlight
possible radio problems, generate KPIstatisticsor investigate problems.
8/12/2019 GSM-Actix
16/64
Analysis Manager
Central point for managing
queries
Allows new query to bewritten, edited can deleted
Allows existing queries to be
imported (retrieved) and
exported (saved)
Tool Analysis Manager, or
press Ctrl-A to go to Analysis Manager
8/12/2019 GSM-Actix
17/64
6 types of Queries
FilterBinned (Time-Series )
Crosstab (Multi-Dimensional Statistics )
Histogram
Statistic
Event (Event-Triggered Window Statistics )
8/12/2019 GSM-Actix
18/64
FilterA filter analysis tests data on a single
criterionand displays the data only if the
criterion is met
Example 1:
To quickly identify areas with bad RxLev
coverage(idle and dedicated mode)
ServRxLevEither < -95 dBmExample 2:
Interference:
ServRxLevSub > -90 AND ServRxQualSub > 3
8/12/2019 GSM-Actix
19/64
8/12/2019 GSM-Actix
20/64
Filter Wizard
8/12/2019 GSM-Actix
21/64
Making use of HELPto obtain more
useful information
Example:
Help Index state function, overview(Here you find all explanation and examples
with logfiles + cellrefs regarding array indexer)
You can also find the state() function
explanation in page 41
8/12/2019 GSM-Actix
22/64
Turn on a Filter
Right Click on StreamName
Click on Filter
Select the Filter you wish to turn on
Turn off a FilterRight Click on StreamName
Click on Filter
Select the filter marked with you
wish to turn off
8/12/2019 GSM-Actix
23/64
Delete a Filter
Press Ctrl-Ato go toAnalysis Manager
Click on Existing Analysestab
Scroll down to Filterfolder
Select the filter you want todelete
Click on Deletebutton todelete the filter
Click on OK button toconfirm and exit
8/12/2019 GSM-Actix
24/64
Binned Query
The Binned Query allows you to
define a new parameter based onexisting parameters, using
functions and inequalities.
8/12/2019 GSM-Actix
25/64
Expression Builder
8/12/2019 GSM-Actix
26/64
Format Group
Format groups control howinformation is displayed to the
user in Analyzer.
To find out which format to use,
when to use, make use of the
HELP Index format groups,
queries
8/12/2019 GSM-Actix
27/64
Making use of HELPto obtain more
useful information
Example:
Help Index building expressions(This explains how you build and edit an
expression using the Expression builder)
8/12/2019 GSM-Actix
28/64
Making use of HELPto obtain more
useful information
Example:
Help Index array indexer queries(Here you find all explanation and examples
with logfiles + cellrefs regarding array indexer)
Binned Queries, creating
8/12/2019 GSM-Actix
29/64
Histogram
Histogram query processes data for a
single dimension into a bar chart, which is
good for producing a high-level view ofthe data. This data is available for any
time-series data displayed in a workbook.
Example:
Application Measurement (Throughput)RxLevSub
Call Setup Time Analysis (to look at the Statistics)
8/12/2019 GSM-Actix
30/64
Statistic
Statistic query allows you to generate
data based on the statistics available for
a single dimension. It is useful forgenerating a high-level view for system
metrics purposes.
These return the Mean, Mode, Median,
Maximum, Minimum, Count, StandardDeviation and Varianceof the
parameter or expression used.
8/12/2019 GSM-Actix
31/64
Crosstab Query
(Multidimensional Statistical Queries)
provides high-level overviews, typically of the
state of the network.
processes the sequential message data and
extract and calculate summary information
(called statistics), which is broken down by
one or more dimensions(such as region andserving cell).
8/12/2019 GSM-Actix
32/64
Crosstab Query (continued)Dimension
An attribute that is used to define how the data isgrouped in a crosstab query.
StatisticThe results that you would like to include foreach dimension, where the parameter youchoose will be displayed as the columns in theStatistic Explorer(i.e.: mean ServRxLevSub, Count/Total # of dropped calls)
FilterThe filter button on the Statistics Explorer may beused to quickly filter query results in the StatisticsExplorer and in any other data view
8/12/2019 GSM-Actix
33/64
Crosstab Query (continued)
8/12/2019 GSM-Actix
34/64
Crosstab Query Wizard
8/12/2019 GSM-Actix
35/64
Making use of HELPto obtain more
useful information
Example:
Help SEARCH building expressions(This explains how you build and edit an
expression using the Expression builder)
Help SEARCH Event Query Functions
Demo
8/12/2019 GSM-Actix
36/64
REMEMBER!!!
Always view and display the result
of your query after building a few
dimensions and statistics
DO NOT WAIT UNTIL YOU HAVE
CREATED THE WHOLE
CROSSTAB QUERY!!! It will bevery difficult to back track!
8/12/2019 GSM-Actix
37/64
When Crosstab and event queries are processed, Analyzer evaluates
each message in turn in the following order:
Filter
If the message does not pass the filter, evaluation stops and Analyzer
immediately moves on to the next message.
Dimensions
Each dimension is evaluated in turn in the order in which they appear in the
Analysis Manager dialog box. When the evaluation of one dimension
fails, the evaluation stops and Analyzer moves on to the next message
(example of Attach failure report).
Statistics
The statistics are evaluated for every row and are also evaluated in the
order in which they appear in the Analysis Manager dialog box. For each
statistic, the filter is evaluated first and then the statistic expression.
Use the order of evaluation
8/12/2019 GSM-Actix
38/64
The following diagram shows the
order of evaluation for a crosstab
query that has:
- two dimensions
- two statistics
- nofilters
Sometimes speed up a query by
reordering the dimensions.
Order of evaluation
8/12/2019 GSM-Actix
39/64
Often dimension expressions are too general to
be of use for screening out messages
(for example Cell ID or IMSI are set in most of the messages).If your query is only concerned with one or two
message types:
By making a filter that tests for them, you will
immediately eliminate all of the other message
typesThis can hugely reduce the number of
evaluations because no further evaluations will be
performed on the eliminated messages
Use Filtersto Eliminate Messagesthat are Not Relevant
8/12/2019 GSM-Actix
40/64
That's where placing a filter at
the top level (on the query itself)
comes in:
Note that in an event query, the
combination of trigger
expression and window act as a
filter.
Order of evaluation
8/12/2019 GSM-Actix
41/64
8/12/2019 GSM-Actix
42/64
Event QueryAlso known aswindow queries or triggeredqueriesis a specialtype of crosstab querythatare used to create a list of individual occurrences of
a problem so that users can drill downinto thedetails of what was going at that time.
Generally you use an event query to create a listoffailureor warning events, such as dropped calls,handover failures, or throughput measurementsthat are less than a given threshold. You specifythe problem you want to list asthe trigger(sometimes called the triggering event). It can beany attribute or expression, although typically it willbe an event attribute.
8/12/2019 GSM-Actix
43/64
Standard Drive Test AnalysisWhen you create the event query, you specify the triggering
eventand whether you want to investigate a period(called the
window) before, after, or both before and afterthe triggering
event. Typically you would then define statistics to be calculated
on the messages that appear in that window.
8/12/2019 GSM-Actix
44/64
Event Query Wizard
8/12/2019 GSM-Actix
45/64
Discriminated Event QueryAn event query for which a discriminatorhas been
specified.
The discriminator is an attribute(i.e. Call IDor Session
ID) that is used to identify messages that belong to a
particular call or session
Running the query at load time triggers the tracking and
indexing of the messages for each separate call or
session, so that they can subsequently be loaded into
Actix Software as a separate stream for detailed analysisDiscriminated event queries are usually used with
protocol link data, in which the messages from multiple
calls and sessions are multiplexed and interleaved, or
with Repository Manager.
8/12/2019 GSM-Actix
46/64
Discriminated Event Query(Continued)
Note that adding a discriminator will
make the query run more slowlyandso discriminators should not be used
when not really necessary.
For example, users should not
normally create discriminated queriesfor use with drive test data.
8/12/2019 GSM-Actix
47/64
Making use of HELPto obtain more
useful information
Example:
Help SEARCH Event Query
Functions Demo
8/12/2019 GSM-Actix
48/64
Statistical Aggregation Methods
8/12/2019 GSM-Actix
49/64
Expression and Function groups
Help Index filtering,
expressions
(Here you can find all the available
functions to be used in building
your query)
8/12/2019 GSM-Actix
50/64
state() Function
Returns the value of an attribute at the current
message position or, if that has not been set, the
previous valid value.
The state function is useful when working with
attributes that are not set in every message
such as those that record an instantaneousmeasurement of signal strength.
8/12/2019 GSM-Actix
51/64
Tips for query
optimisation
8/12/2019 GSM-Actix
52/64
Should use the statefunction on the dimensionsratherthan the statistics because you are more likely to createdimensions using values (such as the serving cell) that areset only when the value changes and partly because usingthe statefunction in statistics can sometimes distort theresults.
The main places where it is valid to use the statefunction ina statistic is when retrieving, for example, the last value, ofan attribute in an event query or when retrieving the value ofa threshold for use in a comparison operation.
When to use state() function?
Using the statefunction is slowerthan not using
it, so do not use it when it's not necessary.
8/12/2019 GSM-Actix
53/64
8/12/2019 GSM-Actix
54/64
The first thing to understand is what is an evaluation:
each sub-expression within a complex expression is a separate evaluation
so simplifying a complex expression will reduce the number of evaluations.
For example, consider this complex expression for determining the serving cell:
default(state(ServingSectorID),Sector with SC + default(Uu_ActiveSet_SC[0],Undefined))
This can be broken down into the following sub-expressions:
Obviously the overall complex expression will take longer to evaluate than any
one of these sub-expression on its own.
Impact of the Number of Evaluations
8/12/2019 GSM-Actix
55/64
That is what happens when you run a crosstab query:
the tool passes each message to the query
the message then passes through the query until it's either excludedor the evaluation of all of the statistics is complete
Therefore, the fewer the evaluations, the faster the query
If you want your query to run fast, you should try to find the simplest
solutionthat is, the one that requires the fewest evaluations.
Reducing the Number of Evaluations
8/12/2019 GSM-Actix
56/64
For expressions of comparable complexity, each evaluation takes about
the same length of time.
Often you will find that there is more than one way of arriving at a result.
You can therefore speed up queries by reducing the number of evaluations
that take place or reducing the number of sub-expressions in a complex
expression
One of the main ways of doing this is to make the order of evaluation work
for you (see next point).
Reduce the number of evaluations
8/12/2019 GSM-Actix
57/64
Each message is matched against each unique value in each
dimension, so the more unique values there are in a dimension, the
slower the query will be.
An example of reducing the number of unique values in a dimension is
for example using a function like mround:
substitute (ServRxLevFull) with mround(ServRxLevFull, 5)
to round the values to the nearest multiple of five.
Reduce the number of rows
8/12/2019 GSM-Actix
58/64
8/12/2019 GSM-Actix
59/64
Instead of creating a list of calls and iterating across them looking for the
interesting ones, it's generally better to create event queries based on the
events you are interested in
Example of failures during attach: use the failure events as trigger points
If necessary, write an event diagram to detect the event to be used as the
trigger in the event query. Event diagrams (especially simple ones) are
generally much faster than queries.
Consider event detection
8/12/2019 GSM-Actix
60/64
For example, rather than create a dimension or statistic with a complicated
expression that tracks the gap between GPRS packets:
If((Time prev_time_where(IsValid(Task_Packets_Cum_IncRetr_DL))) > 1000,
(Timeprev_time_where(IsValid(Task_Packets_Cum_IncRetr_DL))), Null)
With this filter: IsValid(Task_Packets_Cum_IncRetr_DL)
it would usually be preferable to create an event diagram that tracks the gap
between packets and sets an event if the gap is greater than a specified
threshold.
Then you could create an event query using that event as the trigger.
Consider event detection
8/12/2019 GSM-Actix
61/64
The Count Distinctand Modeaggregation methods require a count to be
maintained of every value that is found in the data
That can have a serious negative impact on performance when used inqueries that are run against large volumes of data, particularly when the
range of potential values being evaluated is large and can grow indefinitely
(for example, when the values are IMSIs)
When necessary, consider whether you can get the equivalent information in
a different wayfor example, by using a separate histogram query rather
than a crosstab query
If this is not possible, because, for example, you need to break down the
results by a dimension (such as the cell), make sure that you minimize the
number of dimensions (see active subscribers
Beware the Count Distinct and Mode
aggregation methods
8/12/2019 GSM-Actix
62/64
strings are much slower to evaluate than numerical values
avoid basing dimensions on string values, because the lookup for strings
is slow. If you need to dimension on a string value, see if there is a numeric
value that you could use instead.
The query will be faster if you dimension on a numeric value and make
the string value a statistic (you can use format groups) to render numeric
data as strings in the output.
For example, you can use the Service_Protocol_Type format group to
render progressive numbers into protocol names (see Subscribers per
Application). This will make the query faster than using the function, which
actually converts the time to a string.
Sometimes it is impossible to avoid string, though (see APN usage).
Strings are slow
8/12/2019 GSM-Actix
63/64
When you create queries it's easy to think of the table you
want in Excel and then create dimensions for the rows and
statistics for the columns.
However, this m ight not always be the mos t eff ic ient wayto c reate the query
Sometimes it might be better to construct it in a different way.
For example, suppose you want to create a table that has a
column for every message type and rows that show the count.
Rather than creating a statistic for each message type, itwould be more efficient to simply use the message type as the
dimension.
Think laterally
8/12/2019 GSM-Actix
64/64
Questions?