Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reorg docs #522

Merged
38 commits merged into from
Dec 13, 2022
Merged
Show file tree
Hide file tree
Changes from 37 commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
a608298
Remove exclamation, and morpheus owns the docs
dagardner-nv Dec 2, 2022
74648f9
Include readme's from examples in the source
dagardner-nv Dec 2, 2022
fcb6e9c
Non-owning
dagardner-nv Dec 2, 2022
296e5cd
Replace usage of words like 'see' and 'look' in documentation
dagardner-nv Dec 6, 2022
254126b
Remove explcit calls to pipeline.build, this is no longer needed
dagardner-nv Dec 6, 2022
6fbeda7
Replace unseen with previously undetected
dagardner-nv Dec 6, 2022
9dedfb8
The logs are anonymized
dagardner-nv Dec 6, 2022
530b40e
Merge branch 'branch-23.01' into david-23.01-docs
dagardner-nv Dec 6, 2022
94da28d
Update the github url for Morpheus
dagardner-nv Dec 6, 2022
20b8651
Use main branch
dagardner-nv Dec 6, 2022
5b4080b
Add a toc link to the code of conduct
dagardner-nv Dec 7, 2022
12f2008
Shorten the title
dagardner-nv Dec 7, 2022
2363ee0
Merge branch 'branch-23.01' into david-23.01-docs-reorg
dagardner-nv Dec 7, 2022
8619f53
Merge branch 'branch-23.01' into david-23.01-docs
dagardner-nv Dec 7, 2022
9b40ad2
Move most of the contents of README to a new file under docs/source
dagardner-nv Dec 7, 2022
1c9cc13
Add getting_started & contributing guides
dagardner-nv Dec 7, 2022
c76a083
Link to developer guides from readme, guides doc converted from rst t…
dagardner-nv Dec 7, 2022
73507f6
Merge branch 'branch-23.01' into david-23.01-docs
dagardner-nv Dec 7, 2022
e4f7ddc
Merge branch 'david-23.01-docs' of github.com:dagardner-nv/Morpheus i…
dagardner-nv Dec 7, 2022
9781e58
Merge branch 'david-23.01-docs' into david-23.01-docs-reorg
dagardner-nv Dec 7, 2022
56502e7
Replace NGC intro with a list of getting started docs
dagardner-nv Dec 7, 2022
d5b9310
wip
dagardner-nv Dec 7, 2022
f37ee41
Move the contributing symlink
dagardner-nv Dec 7, 2022
9b0a9d9
wip
dagardner-nv Dec 7, 2022
4cd561d
wip
dagardner-nv Dec 7, 2022
e1602a7
Replace smart quotes
dagardner-nv Dec 7, 2022
c96429a
Sphinx wants the section to be named 'Examples' and it wants the inte…
dagardner-nv Dec 8, 2022
dac60f7
The myst parser doesn't like 'yml' as an alias for 'yaml'
dagardner-nv Dec 8, 2022
e653d64
Fix links
dagardner-nv Dec 8, 2022
c5ac203
TODO was causing a parse error in sphinx
dagardner-nv Dec 8, 2022
764e01f
Fix formatting for docstrings
dagardner-nv Dec 8, 2022
2d66cd5
Fix what appears to be a cut-off docstring
dagardner-nv Dec 8, 2022
3266860
Merge branch 'branch-23.01' into david-23.01-docs-reorg
dagardner-nv Dec 8, 2022
0f52edf
Misc docstring fixes
dagardner-nv Dec 8, 2022
19b2ef0
Restructure symlinks for examples, preventing name conflicts and addi…
dagardner-nv Dec 8, 2022
3f1e456
Update link to options reference
dagardner-nv Dec 8, 2022
38b56b6
Update docs list
dagardner-nv Dec 8, 2022
a9d9393
Merge branch 'branch-23.01' into david-23.01-docs-reorg
dagardner-nv Dec 13, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .clang-format
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
# Refer to the following link for the explanation of each params:
# http://releases.llvm.org/8.0.0/tools/clang/docs/ClangFormatStyleOptions.html
# https://releases.llvm.org/14.0.0/tools/clang/docs/ClangFormatStyleOptions.html
Language: Cpp
# BasedOnStyle: Google
AccessModifierOffset: -2
Expand Down
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -234,14 +234,14 @@ Launching a full production Kafka cluster is outside the scope of this project.
```
5. Update the `kafka-docker/docker-compose.yml`, performing two changes:
1. Update the `ports` entry to:
```yml
```yaml
ports:
- "0.0.0.0::9092"
```
This will prevent the containers from attempting to map IPv6 ports.
1. Change the value of `KAFKA_ADVERTISED_HOST_NAME` to match the value of the `KAFKA_ADVERTISED_HOST_NAME` environment variable from the previous step. For example, the line should look like:

```yml
```yaml
environment:
KAFKA_ADVERTISED_HOST_NAME: 172.17.0.1
```
Expand Down
317 changes: 5 additions & 312 deletions README.md

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions docs/source/developer_guide/contributing.md

This file was deleted.

This file was deleted.

This file was deleted.

16 changes: 8 additions & 8 deletions docs/source/developer_guide/examples/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@ Examples
.. toctree::
:maxdepth: 20

abp_nvsmi_detection.md
abp_pcap_detection.md
gnn_fraud_detection_pipeline.md
log_parsing.md
nlp_si_detection.md
ransomware_detection.md
root_cause_analysis.md
sid_visualization.md
abp_nvsmi_detection/README.md
abp_pcap_detection/README.md
gnn_fraud_detection_pipeline/README.md
log_parsing/README.md
nlp_si_detection/README.md
ransomware_detection/README.md
root_cause_analysis/README.md
sid_visualization/README.md
1 change: 0 additions & 1 deletion docs/source/developer_guide/examples/log_parsing.md

This file was deleted.

1 change: 0 additions & 1 deletion docs/source/developer_guide/examples/nlp_si_detection.md

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

26 changes: 26 additions & 0 deletions docs/source/developer_guide/guides.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<!--
SPDX-FileCopyrightText: Copyright (c) 2022, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
SPDX-License-Identifier: Apache-2.0

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->

# Guides

Morpheus includes several stages to choose from when building a custom pipeline, which can be included and configured to suit your needs. However, there are likely going to be situations that require writing a custom stage. Morpheus stages are written in Python and optionally may include a C++ implementation. The following guides outline how to create your own stages in both Python and C++.

## [Simple Python Stage](./guides/1_simple_python_stage.md)
## [Real-World Application: Phishing Detection](./guides/2_real_world_phishing.md)
## [Simple C++ Stage](./guides/3_simple_cpp_stage.md).
## [Creating a C++ Source Stage](./guides/4_source_cpp_stage.md).
## [Digital Fingerprinting (DFP)](./guides/5_digital_fingerprinting.md).
28 changes: 0 additions & 28 deletions docs/source/developer_guide/guides.rst

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ See the License for the specific language governing permissions and
limitations under the License.
-->

# 1. A Simple Python Stage
# Simple Python Stage

## Background

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ See the License for the specific language governing permissions and
limitations under the License.
-->

# 2. A Real-World Application: Phishing Detection
# Real-World Application: Phishing Detection

## Data Preprocessing

Expand Down
2 changes: 1 addition & 1 deletion docs/source/developer_guide/guides/3_simple_cpp_stage.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ See the License for the specific language governing permissions and
limitations under the License.
-->

# 3. A Simple C++ Stage
# Simple C++ Stage

Morpheus offers the choice of writing pipeline stages in either Python or C++. For many use cases, a Python stage is perfectly fine. However, in the event that a Python stage becomes a bottleneck for the pipeline, then writing a C++ implementation for the stage becomes advantageous. The C++ implementations of Morpheus stages and messages utilize the [pybind11](https://pybind11.readthedocs.io/en/stable/index.html) library to provide Python bindings.

Expand Down
2 changes: 1 addition & 1 deletion docs/source/developer_guide/guides/4_source_cpp_stage.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ See the License for the specific language governing permissions and
limitations under the License.
-->

# 4. Creating a C++ Source Stage
# Creating a C++ Source Stage

For this example, we are going to add a C++ implementation for the `RabbitMQSourceStage` we designed in the Python examples. The Python implementation of this stage emits messages of the type `MessageMeta`; as such, our C++ implementation must do the same.

Expand Down
10 changes: 5 additions & 5 deletions docs/source/developer_guide/guides/5_digital_fingerprinting.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ See the License for the specific language governing permissions and
limitations under the License.
-->

# 5. Digital Fingerprinting (DFP)
# Digital Fingerprinting (DFP)

## Overview
Every account, user, service and machine has a digital fingerprint​, which represents the typical actions performed and not performed over a given period of time. Understanding every entity's day-to-day, moment-by-moment work helps us identify anomalous behavior and uncover potential threats in the environment​.
Expand All @@ -28,7 +28,7 @@ The data we will want to use for the training and inference will be any sensitiv
The location of these logs could be either local to the machine running Morpheus, a shared file system like NFS or on a remote store such as [Amazon S3](https://aws.amazon.com/s3/).

### Defining a New Data Source
Additional data sources and remote stores can easily be added using the Morpheus SDK. The key to applying DFP to a new data source is through the process of feature selection. Any data source can be fed into DFP after some preprocessing to get a feature vector per log/data point​. In order to build a targeted model for each entity (user/service/machine... etc.), the chosen data source needs a field that uniquely identifies the entity were trying to model.
Additional data sources and remote stores can easily be added using the Morpheus SDK. The key to applying DFP to a new data source is through the process of feature selection. Any data source can be fed into DFP after some preprocessing to get a feature vector per log/data point​. In order to build a targeted model for each entity (user/service/machine... etc.), the chosen data source needs a field that uniquely identifies the entity we're trying to model.

Adding a new source for the DFP pipeline requires defining five critical pieces:
1. The user_id column in the Morpheus config attribute `ae.userid_column_name`. This can be any column which uniquely identifies the user, account or service being fingerprinted. Examples of possible user_ids could be:
Expand Down Expand Up @@ -108,8 +108,8 @@ This example is described in [`examples/digital_fingerprinting/production/README
| Feature | Description |
| ------- | ----------- |
| logcount | tracks the number of logs generated by a user within that day (increments with every log)​ |
| locincrement | increments every time we observe a new city (location.city) in a users logs within that day​ |
| appincrement | increments every time we observe a new app (appDisplayName) in a users logs within that day​ |
| locincrement | increments every time we observe a new city (location.city) in a user's logs within that day​ |
| appincrement | increments every time we observe a new app (appDisplayName) in a user's logs within that day​ |

#### Duo Authentication
| Feature | Description |
Expand All @@ -125,7 +125,7 @@ This example is described in [`examples/digital_fingerprinting/production/README
| Feature | Description |
| ------- | ----------- |
| logcount | tracks the number of logs generated by a user within that day (increments with every log)​ |
| locincrement | increments every time we observe a new city (location.city) in a users logs within that day​ |
| locincrement | increments every time we observe a new city (location.city) in a user's logs within that day​ |


## High Level Architecture
Expand Down
2 changes: 1 addition & 1 deletion docs/source/extra_info/known_issues.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,4 @@ limitations under the License.

# Known Issues

There are no known issues at this time.
Refer to [open issues in the Morpheus project](https://github.com/nv-morpheus/Morpheus/issues)
Loading