Git Product home page Git Product logo

charyeezy / aws-5g-network-performance-analytics Goto Github PK

View Code? Open in Web Editor NEW

This project forked from aws-samples/aws-5g-network-performance-analytics

0.0 1.0 0.0 231 KB

Code to support the AWS Big Data Blog post Build a cloud-native network performance analytics solution on AWS for wireless service providers.

Home Page: https://aws.amazon.com/blogs/big-data/build-a-cloud-native-network-performance-analytics-solution-on-aws-for-wireless-service-providers/

License: MIT No Attribution

Python 100.00%

aws-5g-network-performance-analytics's Introduction

Build a cloud-native network performance analytics solution on AWS for wireless service providers

This GitHub repository contains the code to support the AWS Big Data Blog post Build a cloud-native network performance analytics solution on AWS for wireless service providers. It contains the Python code for the AWS Lambda described in the post and some example source (XML) and output (CSV, JSON) files.

Architecture

Collecting data using Amazon Kinesis Data Firehose or AWS Transfer for SFTP

For information about collecting PM files via element managers, see chapter 5 of Technical Specification 3GPP TS 31.432 on the 3GPP website.

Element managers act as collectors of XML measurement files that the network elements provide. They can send the files to an Amazon S3 bucket via Amazon Kinesis Data Firehose or AWS Transfer for SFTP.

Transforming data using a Lambda function

The Lambda function in this repository is written in Python 3.7 and it is associated with the ObjectCreated event type of the destination S3 bucket rawxml prefix (i.e. s3://wireless-pm/rawxml). We have created a Lambda layer to resolve the dependency of the xmltodict library. The function runs every time a new XML file is saved in this location.

Lambda function properties in AWS Manamgement Console

The function transposes the XML files, converts them into CSV or JSON (depending on the value set in the function’s output_format environment variable), and formats the files with one record per measurement (measData), measure type, and value (measInfo).

Lambda function properties in AWS Manamgement Console

The technical specification 3GPP TS 32.435 document on the 3GPP website provides three example XML files in the Annex section. As an example, these are also included in this repository, together with the transformed output in CSV and JSON format.

XML JSON CSV
a1.xml a1.json a1.csv
a2.xml a2.json a2.csv
a3.xml a3.json a3.csv

You can change the output field names in the get_record_header static method of the GPPXml class defined in the Lambda function. The fields md_mi_meas_name and md_mi_meas_value contain the measure name and measure value, respectively.

The transformed CSV and JSON files are saved in the raw_transform_csv and raw_transform_json prefixes, respectively, in the S3 bucket (only one format is created for each execution, depending on the value of the output_format environment variable). The following screenshot shows the S3 bucket overview on the Amazon S3 console.

License

This library is licensed under the MIT-0 License. See the LICENSE file.

aws-5g-network-performance-analytics's People

Contributors

amazon-auto avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.