AWS plugin
For more information about what this plugin does and the data streams it retrieves, see:
Monitor your AWS environment, including EC2, Lambda Functions, CloudWatch and more.
How to add the data source
To add a data source click on the + next to Data Sources on the left-hand menu in SquaredUp. Search for the data source and click on it to open the Configure data source page.
Before you start
Authentication types
SquaredUp supports IAM User and IAM Role based authentication when configuring the AWS data source. What You will need to set up the plugin will change depending on which authentication method you choose.
While IAM User authentication gives you all the permissions associated with that user, IAM Role authentication provides a much more granular approach and instead restricts you to the permissions associated with a configured role.
You will need:
- One of the following:
- The Access key ID and Secret access key of an IAM user with programmatic access (IAM User based).
- The Role Arn (Amazon resource name) and External ID of an IAM role with programmatic access (IAM Role based). See AWS IAM Role configuration for SquaredUp for detailed instructions on creating IAM roles for use with this plugin.
- The AWS Account ID and Target Regions for your AWS resources.
Roles / users with programmatic access
You will need to configure a new or existing role / user (depending on your authentication type) with a ReadOnlyAccess AWS managed policy. This policy provides the necessary rights for the integration to function. Alternatively, this policy can also be used as a starting point for a custom policy if, for example, sensitive services need to be removed.
Warning: While it is possible to use a custom policy, restricting access can severely impact the usability of the plugin such as preventing the use of scoped data streams. The ability to search for objects can also be impacted
A small number of data streams do require additional access rights such as the AmazonTimestreamReadOnlyAccess AWS managed policy (required for the Timestream Query data stream), which are documented in the corresponding data stream sections of this article.
See AWS credentials - Programmatic access ,Creating an IAM user in your AWS account and Creating a role to delegate permissions to an IAM user.
Configuring the data source
- Authentication Type:
Select one of the following options depending on your chosen authentication method:- IAM User Based: You must enter the Access Key ID and Secret Access Key of the IAM user with programmatic access.
- IAM Role Based: You must enter the Role Arn and External ID of the IAM roll.
For detailed instructions on configuring IAM roles for this plugin, see AWS IAM Role configuration for SquaredUp.
- Input the Target Regions for your AWS resources, i.e. us-east-2, eu-west-1
- Enter the AWS Account ID
- Enter an Account name to help you remember which account and credentials you have used above. For example, you might type prod to remind you that you used the production account details.
Install Sample Dashboards:
Select whether you would like to install sample dashboards with the data source. By default, this is set to on.Optionally, select whether you would like to restrict access to this data source instance. By default, restricted access is set to off.
The term data source here really means data source instance. For example, a user may configure two instances of the AWS data source, one for their development environment and one for production. In that case, each data source instance has its own access control settings.
By default, Restrict access to this data source is set to off. The data source can be viewed, edited and administered by anyone. If you would like to control who has access to this data source, switch Restrict access to this data source to on.
Use the Restrict access to this data source dropdown to control who has access to the workspace:
- By default, the user setting the permissions for the data source will be given Full Control and the Everyone group will be given Link to workspace permissions.
- Tailor access to the data source, as required, by selecting individual users or user groups from the dropdown and giving them Link to workspace or Full Control permissions.
- If the user is not available from the dropdown, you are able to invite them to the data source by typing in their email address and then clicking Add. The new user will then receive an email inviting them to create an account on SquaredUp. Once the account has been created, they will gain access to the organization.
- At least one user or group must be given Full Control.
- Admin users can edit the configuration, modify the Access Control List (ACL) and delete the data source, regardless of the ACL chosen.
Access Level:
Link to workspace- User can link the data source to any workspace they have at least Editor permissions for.
- Data from the data source can then be viewed by anyone with any access to the workspace.
- User can share the data source data with anyone they want.
- User cannot configure the data source in any way, or delete it.
Full Control- User can change the data source configuration, ACL, and delete the data source.
See Access control for more information.
Click Test and add to validate the data source configuration.
- Testing passed – a success message will be displayed and then the configuration will be saved.
- Testing passed with warnings – warnings will be listed and potential fixes suggested. You can still use the data source with warnings. Select Save with warnings if you believe that you can still use the data source as required with the warnings listed. Alternatively, address the issues listed and then select Rerun tests to validate the data source configuration again. If the validation now passes, click Save.
- Testing Failed – errors will be listed and potential fixes suggested. You cannot use the data source with errors. You are able to select Save with errors if you believe that a system outside of SquaredUp is causing the error that you need to fix. Alternatively, address the issues listed and then select Rerun tests to validate the data source configuration again. If the validation now passes, click Save.
You can edit any data source configurations at any time from Settings > Data Sources.
The index time will depend on the size of your AWS environment.You can also add a data source from Settings > Data Sources > Add data source, but sample dashboards are not added when using this method.
Using the AWS data streams
Data streams standardize data from all the different shapes and formats your tools use into a straightforward tabular format. While creating a tile you can tweak data streams by grouping or aggregating specific columns. Depending on the kind of data, SquaredUp will automatically suggest how to visualize the result, for example as a table or line graph.
Data streams can be either global or scoped:
- Global data streams are unscoped and return information of a general nature (e.g. "Get the current number of unused hosts").
- A scoped data stream gets information relevant to the specific set objects supplied in the tile scope (e.g. "Get the current session count for these hosts").
See Data Streams for more information.
Data streams
The following data streams are installed with this plugin.
See also:
- Tips for using the AWS Data Streams
- Write a custom data stream (advanced use) see Writing a custom data stream (advanced users)
This data stream allows you to visualize and monitor Timestream data by querying one or more Timestream tables in the specified AWS region. The IAM user with programmatic access configured when adding the AWS data source must have the AmazonTimestreamReadOnlyAccess AWS managed policy.
- Filter by the AWS data source in the tile editor, select Timestream Query, and then click Next
- Region:
Select the AWS region to target. - Query:
Enter the Timestream query. Timestream database and table names may need to be enclosed in double quotes (e.g. FROM “DatabaseName”.”TableName”). It’s recommended to copy a valid and tested Timestream query from the Query editor within the AWS Timestream portal.
This three minute video shows how to visualize AWS Timestream data:
This data stream allows you to fetch logs from any log group and run queries on them.
- Filter by the AWS data source in the tile editor, select CloudWatch Logs, and then click Next
- Region:
Select the AWS region to target. - Log group(s):
Enter the names of the log groups you want to query/fetch logs from, separated by commas. - Limit:
Enter a limit for the number of results you want to fetch per query. - Query:
Enter the Log Insights query you want to run. Use Log Insights in CloudWatch logs in the AWS console to write your queries. For example, you can add a filter to they query| filter: @message like 'error'
. See AWS: CloudWatch Logs Insights query syntax
Allows you to query any metric in AWS CloudWatch using the source from the CloudWatch Metrics explorer.
- Filter by the AWS data source in the tile editor, select CloudWatch Metrics Query, and then click Next
- Region:
Select the AWS region to target. - Query:
In CloudWatch Metrics, copy the JSON from the Source tab and paste it into the Query field.A
region
value must be supplied for each expression that refers to a row that is not in the default Region which you previously selected.
- Filter by the AWS data source in the tile editor, select CloudWatch Metric, and then click Next
- Scope to the objects you want to use, and then click Next.
- The current resources supported are:
- API Gateway
- CloudFront
- CloudWatch RUM
- CloudWatch Synthetics
- Cognito UserPools
- DynamoDB
- ECS clusters
- EC2
- ElastiCache Memcached
- ElastiCache Redis
- Elastic load balancers (ELB)
- Lambda
- Route53
- RDS
- S3 buckets
- WAF WebACLs
- Metric:
Select the metric that you want to measure. - Statistic:
Select the required statistic.Available statistics vary depending on the metric that has been selected.
- The following resources have their own configurable data streams as they have additional fields:
- DynamoDB Metric: Optional operation type that is required to fetch certain metrics.
- S3 Metric: Requires you to select a storage type depending on metric.
Explore costs occurred in AWS.
Filter by the AWS data source in the tile editor, select Cost, and then click Next
Filters and grouping info at AWS: GetCostAndUsage
- Metric:
Select the cost metric from Cost Explorer e.g. UnblendedCost. - Granularity:
Select how frequently you want to sample the data: Hourly, Daily, or Monthly. - Group By:
Add grouping for the cost request by Dimension, Tag or Cost. - Filter:
Enter the filter used to remove cost data from the query based on dimensions.
Cost examples
Group by availability zone:
[
{
"Type": "DIMENSION",
"Key": "AZ"
}
]
Group by service:
[
{
"Type": "DIMENSION",
"Key": "SERVICE"
}
]
Filter to lambda cost only:
{
"Dimensions": {
"Key": "SERVICE",
"Values": [
"AWS Lambda"
]
}
}
Filter to remove tax and developer support:
{
"Not": {
"Dimensions": {
"Key": "SERVICE",
"Values": [
"Tax",
"AWS Support (Developer)"
]
}
}
}
Tips for using the AWS Data Streams
This data source comes with several data streams that you can use in the tiles on your dashboards. Here you'll find tips and ideas for using these data streams to display the data you're interested in.
This Data Stream uses the AWS Cost Explorer to show you data about how much each of you AWS services cost you.
The Cost Data Stream returns the daily unblendedcosts per service. If you want to use a different granularity (like monthly costs) or a different cost metric (like amortized costs), you need to create a custom Data Stream (see Custom Data Streams). Costs will always be returned in the currency you set in your AWS account.
Note: You need the AWS Cost Explorer service to use the Cost Data Stream. This service collects the costs of your other services. Please be aware that AWS charges you for every request that the AWS Cost Explorer sends. Each tile that uses the AWS Cost Data Stream makes a request every time the dashboard reloads.
Tax costs
Tax is a cost that will be added to your other costs monthly on one specific day. A good way to visualize tax costs is the Line Graph, where you'll see a spike on tax day when the dashboard timeframe is set to 30 days.
Line Graphs
Remember that the cost data from AWS is daily data. Therefore, Line Graphs will only show data when the dashboard timeframe is set to 7 days or 30 days. Any smaller timeframe will leave the Line Graph empty since there's not enough data.
The dashboard timeframe is the current timeframe setting for a dashboard. Users can change the dashboard timeframe to see data for a different time span, for example, instead of showing data from "the last 12 hours" it can be changed to show data from "the last 7 days".
Tiles can be configured to:
- Use dashboard timeframe (default). For these tiles the data shown will change when the user changes the dashboard timeframe.
- Use a fixed timeframe from the options available. These tiles show a clock icon and hovering shows the fixed timeframe configured. The data will not change when the dashboard timeframe is changed.
If the dashboard timeframe is unavailable, such as when all the tiles on that dashboard are using a fixed timeframe, then the button is disabled. Likewise, if a specific timeframe is unsupported then it is disabled in the timeframe picker.
Set a default dashboard timeframe
To set the default dashboard timeframe, click the pin icon
when using the dashboard timeframe picker. This sets the initial timeframe for all viewers of the dashboard, including shared dashboards.Tip: Indicate with the name of a tile if the tile's timeframe can be changed. For example, naming a tile "Performance during the last week" tells users that this tile always shows data for the last week. Naming a tile just "Performance" indicates to users that changing the dashboard timeframe will change the data.
Scalars
A Scalar displays one value. A Scalar is useful to show a specific number like "total cost of my services" or "free disk space on this server".
When a Data Stream returns multiple values (meaning a table with multiple rows), you will still be able to pick the Scalar visualization, but the Scalar will only show the value of the first row.
Create a new tile on a dashboard with the following settings:
Data Stream:
Select the Cost Data Stream.
Objects:
Select a scope that contains your AWS account(s).
Visualization:
You could select a Table or a Line Graph to visualize your data. A Line Graph is probably the more convenient way to see what each service cost you over time.
Remember that the cost data from AWS is daily data. Therefore, Line Graphs will only show data when the dashboard timeframe is set to 7 days or 30 days. Any smaller timeframe will leave the Line Graph empty since there's not enough data.
The dashboard timeframe is the current timeframe setting for a dashboard. Users can change the dashboard timeframe to see data for a different time span, for example, instead of showing data from "the last 12 hours" it can be changed to show data from "the last 7 days".
Tiles can be configured to:
- Use dashboard timeframe (default). For these tiles the data shown will change when the user changes the dashboard timeframe.
- Use a fixed timeframe from the options available. These tiles show a clock icon and hovering shows the fixed timeframe configured. The data will not change when the dashboard timeframe is changed.
If the dashboard timeframe is unavailable, such as when all the tiles on that dashboard are using a fixed timeframe, then the button is disabled. Likewise, if a specific timeframe is unsupported then it is disabled in the timeframe picker.
Set a default dashboard timeframe
To set the default dashboard timeframe, click the pin icon
when using the dashboard timeframe picker. This sets the initial timeframe for all viewers of the dashboard, including shared dashboards.Tip: Indicate with the name of a tile if the tile's timeframe can be changed. For example, naming a tile "Performance during the last week" tells users that this tile always shows data for the last week. Naming a tile just "Performance" indicates to users that changing the dashboard timeframe will change the data.
Create a new tile on a dashboard with the following settings:
Data Stream:
Select the Cost Data Stream.
Objects:
Select a scope that contains your AWS account(s).
Shaping:
The following settings will get you the result of how much all services combined cost you in total or on average:
Group by | Date (For each day...) |
Aggregate column | Cost (...show me the combined costs...) |
Aggregation type | Average or total (... on average or in total.) |
Visualization:
You could select a Table or a Line Graph to visualize your data. A Line Graph is probably the more convenient way to see what all services combined cost you over time.
Remember that the cost data from AWS is daily data. Therefore, Line Graphs will only show data when the dashboard timeframe is set to 7 days or 30 days. Any smaller timeframe will leave the Line Graph empty since there's not enough data.
The dashboard timeframe is the current timeframe setting for a dashboard. Users can change the dashboard timeframe to see data for a different time span, for example, instead of showing data from "the last 12 hours" it can be changed to show data from "the last 7 days".
Tiles can be configured to:
- Use dashboard timeframe (default). For these tiles the data shown will change when the user changes the dashboard timeframe.
- Use a fixed timeframe from the options available. These tiles show a clock icon and hovering shows the fixed timeframe configured. The data will not change when the dashboard timeframe is changed.
If the dashboard timeframe is unavailable, such as when all the tiles on that dashboard are using a fixed timeframe, then the button is disabled. Likewise, if a specific timeframe is unsupported then it is disabled in the timeframe picker.
Set a default dashboard timeframe
To set the default dashboard timeframe, click the pin icon
when using the dashboard timeframe picker. This sets the initial timeframe for all viewers of the dashboard, including shared dashboards.Tip: Indicate with the name of a tile if the tile's timeframe can be changed. For example, naming a tile "Performance during the last week" tells users that this tile always shows data for the last week. Naming a tile just "Performance" indicates to users that changing the dashboard timeframe will change the data.
Create a new tile on a dashboard with the following settings:
Data Stream:
Select the Cost Data Stream.
Objects:
Select a scope that contains your AWS account(s).
Shaping:
The following settings will get you the result of how much each service cost you:
Group by | Service (For each service...) |
Aggregate column | Cost (...show me all costs combined for this service within my chosen timeframe...) Note: Instead of choosing a fixed timeframe here, you can choose the timeframe dynamically via the dashboard timeframe when you're looking at your finished tile. |
Aggregation type | Average or total (... on average or in total.) |
Visualization:
There are different ways to visualize your data, try a Donut or a Table.
After you're done creating the tile, you can specify the timeframe by changing the dashboard timeframe to today, 7 days or 30 days.
The dashboard timeframe is the current timeframe setting for a dashboard. Users can change the dashboard timeframe to see data for a different time span, for example, instead of showing data from "the last 12 hours" it can be changed to show data from "the last 7 days".
Tiles can be configured to:
- Use dashboard timeframe (default). For these tiles the data shown will change when the user changes the dashboard timeframe.
- Use a fixed timeframe from the options available. These tiles show a clock icon and hovering shows the fixed timeframe configured. The data will not change when the dashboard timeframe is changed.
If the dashboard timeframe is unavailable, such as when all the tiles on that dashboard are using a fixed timeframe, then the button is disabled. Likewise, if a specific timeframe is unsupported then it is disabled in the timeframe picker.
Set a default dashboard timeframe
To set the default dashboard timeframe, click the pin icon
when using the dashboard timeframe picker. This sets the initial timeframe for all viewers of the dashboard, including shared dashboards.Tip: Indicate with the name of a tile if the tile's timeframe can be changed. For example, naming a tile "Performance during the last week" tells users that this tile always shows data for the last week. Naming a tile just "Performance" indicates to users that changing the dashboard timeframe will change the data.
Create a new tile on a dashboard with the following settings:
Scope:
Select a scope that contains your AWS account(s). If you haven't created a scope that contains your AWS account(s), you can create one by clicking on the + next to Scope.
Shaping:
The following settings will get you the result of how much each service cost you:
Group by | None (For all of my services...) |
Aggregate column | Cost (...show me all costs combined for all services within my chosen timeframe...) Note: Instead of choosing a fixed timeframe here, you can choose the timeframe dynamically via the dashboard timeframe when you're looking at your finished tile. |
Aggregation type | Average or total (... on average or in total.) |
Visualization:
Since you only want to see one number (all costs for all services), you can choose a Scalar.
After you're done creating the tile, you can specify the timeframe by changing the dashboard timeframe to today, 7 days or 30 days.
The dashboard timeframe is the current timeframe setting for a dashboard. Users can change the dashboard timeframe to see data for a different time span, for example, instead of showing data from "the last 12 hours" it can be changed to show data from "the last 7 days".
Tiles can be configured to:
- Use dashboard timeframe (default). For these tiles the data shown will change when the user changes the dashboard timeframe.
- Use a fixed timeframe from the options available. These tiles show a clock icon and hovering shows the fixed timeframe configured. The data will not change when the dashboard timeframe is changed.
If the dashboard timeframe is unavailable, such as when all the tiles on that dashboard are using a fixed timeframe, then the button is disabled. Likewise, if a specific timeframe is unsupported then it is disabled in the timeframe picker.
Set a default dashboard timeframe
To set the default dashboard timeframe, click the pin icon
when using the dashboard timeframe picker. This sets the initial timeframe for all viewers of the dashboard, including shared dashboards.Tip: Indicate with the name of a tile if the tile's timeframe can be changed. For example, naming a tile "Performance during the last week" tells users that this tile always shows data for the last week. Naming a tile just "Performance" indicates to users that changing the dashboard timeframe will change the data.
This Data Stream shows you the Cost Anomaly alerts from AWS. It returns the alerts you have set up manually as well as the AI generated ones (when AWS suspects you're paying too much for a service).
Which visualization should I use?
This Data Stream returns a list of alerts and a Table is the best way to display them. The Table will show you:
- The Date the alert was triggered
- The Service for which the alert was triggered
- The Anomaly Score, a AWS internal rating system which defines how severe the anomaly is
- The Total Impact, meaning how much more than expected you payed
- The Name of the monitor that triggered the alert
Writing a custom data stream (advanced users)
- In SquaredUp, browse to Settings > Advanced > Data Streams.
- Click Add custom data stream.
- Add your custom data stream by entering the following settings:
- Name:
Enter a display name for your data stream.The display name is the name that you use to identify your data stream in SquaredUp. It has no technical impact and doesn't need to be referenced in the data stream's code.
- Data source:
Choose the data source this data stream is for.
After you've chosen the data source the Entry Point field displays. - Entry Point:
Specify the data stream entry point and enter the Code below.To find out which entry point to select and get code examples for the Code field, see the help below.Each data stream uses an entry point, which can either be global (unscoped) or scoped, and this determines whether the data stream uses the tile scope.
Data streams can be either global or scoped:
- Global data streams are unscoped and return information of a general nature (e.g. "Get the current number of unused hosts").
- A scoped data stream gets information relevant to the specific set objects supplied in the tile scope (e.g. "Get the current session count for these hosts").
- Name:
- Click Save to save your data stream.
This custom Data Stream will enable you to get different granularity or metrics than the default Cost Data Stream for AWS.
Which entry point do I have to select from the dropdown?
Account Cost
Code example:
{
"name": "account-cost",
"dataSourceConfig": {
"groupBy": [
{
"Type": "DIMENSION",
"Key": "SERVICE"
}
],
"metrics": [
"AmortizedCost"
],
"granularity": "HOURLY",
"filter": {
"Dimensions": {
"Key": "SERVICE",
"Values": [
"AWS Cost Explorer"
]
}
},
"rowPath": [
"ResultsByTime",
[
"Groups"
]
],
"matches": {
"sourceType.0": {
"type": "equals",
"value": "AWS Account"
}
},
"metadata": [
{
"name": "ResultsByTime.TimePeriod.Start",
"displayName": "Date",
"shape": "date"
},
{
"name": "ResultsByTime.Groups.Keys.0",
"displayName": "Service",
"role": "label",
"shape": "string"
},
{
"name": "ResultsByTime.Groups.Metrics.AmortizedCost.Amount",
"displayName": "Cost",
"role": "value",
"shape": "currency"
},
{
"name": "ResultsByTime.Groups.Metrics.AmortizedCost.Unit",
"displayName": "Currency",
"shape": "string"
},
{
"name": "ResultsByTime.Estimated",
"displayName": "Estimated",
"shape": "boolean"
}
]
}
}
Parameters
name
Mandatory
The internal name of the data stream. Can be used the refer to this data stream in a tile's JSON instead of using the data stream's internal ID.
dataSourceConfig
Parameters
Note: You'll find a detailed description about what each parameter does and which values you can use in the AWS API docs: https://docs.aws.amazon.com/aws-cost-management/latest/APIReference/API_GetCostAndUsage.html
metrics | Mandatory | The metrics you want to return, for example AmortizedCost . If you don't specify metrics , the default value is UnblendedCost . |
granularity | Mandatory | The granularity of the data, for example HOURLY . If you don't specify granularity , the default value is DAILY . |
groupBy | Optional | Use this if you want to group the data. For example, the default AWS Cost Data Stream groups the data by SERVICE , which returns the costs for each service in your account.If you don't group by anything, you'll get the costs for your whole account. |
filter | Optional | Use this if you want to filter AWS costs by different dimensions. For example, if you only want to return the costs of the Cost Explorer service, you can filter to that service here. If you don't use any filter, all cost data for your account will be returned. |
matches
Parameters
Note: Defining the matches
parameter is mandatory.
With the matches
parameter you define for which objects the data stream will be shown in SquaredUp. It works like this:
When you configure a tile, you have to choose its scope. If this scope contains objects you specified here in the matches
parameter, the data stream will be shown in SquaredUp under Data Streams. If the scope doesn't contain objects specified here, the data stream will be hidden.
This keeps things clean and simple since you'll only see the data stream when it's relevant for the scope you chose. As a best practice you should limit the data stream to objects that make sense for the specific use case of this data stream.
Format for matches
:
//If you want to specify only one value of an object property//
"matches": {
"ObjectProperty": {
"type": "equals",
"value": "ValueOfTheObjectProperty"
}
},
//If you want to specify multiple values for an object property//
"matches": {
"ObjectProperty": {
"type": "oneOf",
"values": ["ValueOfTheObjectProperty1", "ValueOfTheObjectProperty2", "ValueOfTheObjectProperty3"]
}
},
Example for limiting a data stream to objects:
If you are using multiple values for the object property, you can decide if you want the data stream to be visible for objects that match all of the criteria or at least one of the criteria.
Lets say you have two values you want objects to have in order for the data stream to be visible for them:
- a
SourceName
property with the valueAppDynamics
(meaning objects that come from the AppDynamics data source) - a
type
property with the valueapp
(meaning application objects)
If you want the data stream to be visible only for objects that match both of the criteria, your code would look like this:
"matches": {
"sourceName": {
"type": "equals",
"value": "AppDynamics"
},
"type": {
"type": "equals",
"value": "app"
}
},
If you want the data stream to be visible for objects that match at least one of the criteria, your code would look like this:
"matches": [
{
"sourceName": {
"type": "equals",
"value": "AppDynamics"
}
},
{
"type": {
"type": "equals",
"value": "app"
}
}
]
Note: If you run into errors when configuring the matches
parameter, check if you're dealing with a global entry point.
Data streams can be either global or scoped:
- Global data streams are unscoped and return information of a general nature (e.g. "Get the current number of unused hosts").
- A scoped data stream gets information relevant to the specific set objects supplied in the tile scope (e.g. "Get the current session count for these hosts").
Global entry points can't use specific objects in the matches
parameter. You can identify global entry points by their name, they have "Global", "No Scope" or "Unscoped" added to their name.
There are two possible options for the matches parameter for global entry points:
"matches": "none", | When creating a tile, the Data Stream will be shown as long as no scope is selected. As soon as a scope is selected, the Data Stream will be hidden. |
"matches": "all", | When creating a tile, the Data Stream will be shown as soon as any scope is selected. |
rowPath
Parameter
Optional
SquaredUp expects data in table form, and here's where you define how the table with your return data will be structured.
The rowPath will tell SquaredUp which items you want to convert into rows.
Example:
Let's say your return data looks like this:
{
"generalInfo": "some info",
"results": [
{
"name": "object 1",
"tags": [
"tag 1",
"tag 2",
"tag 3"
]
},
{
"name": "object 2",
"tags": [
"tag 1",
"tag 4"
]
}
]
}
Now it depends on what data you want to base your table on, do you want rows per object or per tag?
If you want to see which objects have which tags, your rowPath
would be results
, and your table would look like this:
name | tags | generalInfo |
object 1 | tag 1, tag 2, tag 3 | some info |
object 2 | tag 1, tag 4 | some info |
If you want to turn each tag into a row and see to which objects they are applied, your rowPath
would be results.tags
, and your table would look like this:
tags | name | generalInfo |
tag 1 | object 1 | some info |
tag 1 | object 2 | some info |
tag 2 | object 1 | some info |
tag 3 | object 1 | some info |
tag 4 | object 2 | some info |
As you can see in the example, each parameter gets turned into a column and the items of the parameter you chose as the rowPath
will be turned into rows.
You might also have noticed in the example that the parameter generalInfo
was included in both cases. This is because after going through all parameters on the same level as your rowPath
, SquaredUp will move through all levels above the rowPath
and create columns from those parameters, too. Parameters on levels below the rowPath
won't be included in the table.
metadata
Parameter
Optional, but recommended
The metadata
parameters are used to describe columns in order to tell SquaredUp what to do with them. You can do multiple things with the metadata
parameters:
- Specify how SquaredUp should interpret the columns you return and - to an extent - how their content displayed. You do this by giving each column a shape.
The shape you assign to a column tells SquaredUp what the column contains (for example, a number, a date, a currency, a URL, etc.). Based on the shape SquaredUp decides how to display this column, for example to display a URL as a clickable link.
- Filter out or just hide columns.
Only the columns you define inmetadata
will be returned in the results. This helps you to filter out columns you don't need. If you need the content of a column but don't want to display it, you can use thevisible
parameter. - Give columns a nicely readable display name.
- Assign a specific role to columns .
The role you assign to a column tells SquaredUp the purpose of the column. For example, if you have two different columns that contain numbers, you need to assign the role
value
to the column that contains the actual value you want to use in your visualization.
If you don't specify any metadata, all columns will be returned and SquaredUp will do its best to determine which columns should be used for which purpose. If you're returning pretty simple data, for example just a string and a number, this can work fine. But if you're returning two columns with numbers it gets trickier for SquaredUp to figure out which one is the value and which one is just an ID or some other number.
Parameters:
Before you start specifying metadata, leave them empty at first and get all the raw data with your new data stream once.
In order to do this, finish creating your custom data stream without metadata and create a tile with this data stream. The Table visualization will show you all raw data.
This will give you an overview about all columns and their content and help you decide which columns you need and what their shapes and roles should be. It's also essential for getting the correct column name to reference in the name
parameter.
Use this information to go back to the data stream configuration and specifying the metadata.
name | Mandatory | Enter the name of the column you are referencing here. To find the name of a column, get the data from this data stream once without any metadata. See the tip above for how to do that. You'll see the column name when you hover over the column in the Table. |
displayName | Optional | Here you can give the column a user-friendly name |
shape | Recommended | The shape you assign to a column tells SquaredUp what the column contains (for example, a number, a date, a currency, a URL, etc.). Based on the shape SquaredUp decides how to display this column, for example to display a URL as a clickable link. Note: Please refer to the list of shapes below this table to see available shapes. |
role | Recommended | The role you assign to a column tells SquaredUp the purpose of the column. For example, if you have two different columns that contain numbers, you need to assign the role Note: Please refer to the list of roles below this table to see available roles. |
visible | Optional | true or false Use this if you need a columns content but don't need to display the column itself. Example: Column A contains the full link to a ticket in your ticket system. Column B contains the ticket ID. You want to use the ticket ID as a label for the link, turning the long URL into a much nicer to read "Ticket 123". This is why you need the content of column B, to assign it as a label for column A. But since the URL is now displayed as the ticket ID, it would be redundant to still display column B. This is why you hide column B with false . |
There are many different shapes you can use for your columns and the list of possible shapes gets expanded constantly:
- Basic types, like:
boolean
,date
,number
,string
- Currency types that get displayed with two decimal values and their currency symbol (for example $23,45), like:
currency
(generic currency),eur
,gbp
,usd
- Data types, like:
bytes
,kilobytes
,megabytes
- Time types, like:
seconds
,milliseconds
,timespan
- The status type :
state
- Utility types, like:
customUnit
url
(will be displayed as a link)
Tip:
Some shapes can be configured.
If a shape is configurable, you can edit how the shape displays data in SquaredUp.
id | Used by data streams feeding the aggregate health stream to identify their Id column |
label | A column containing user-friendly names. Line Graphs use this role to group data into series. so each label will get its own line in the Line Graph. |
link | A column containing a link that can be used as a drilldown in Status Blocks. |
timestamp | A column containing a date to use on the X -axis of a Line Graph. |
unitLabel | A column containing user-friendly labels for data series, e.g. ‘Duration’. Line Graphs can use this role to label the Y-axis. |
value | A column containing the numeric value you want to use in your visualization. |