Skip to content

Commit 47fce66

Browse files
woopgitbook-bot
authored andcommitted
GitBook: [master] 83 pages and 3 assets modified
1 parent b4a73ae commit 47fce66

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+3275
-55
lines changed
106 KB
Loading
10.7 KB
Loading
123 KB
Loading

docs/SUMMARY.md

Lines changed: 53 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
* [File](reference/data-sources/file.md)
3131
* [Offline stores](reference/offline-stores/README.md)
3232
* [File](reference/offline-stores/file.md)
33-
* [BigQuery](reference/offline-stores/untitled.md)
33+
* [BigQuery](reference/offline-stores/bigquery.md)
3434
* [Online stores](reference/online-stores/README.md)
3535
* [SQLite](reference/online-stores/sqlite.md)
3636
* [Redis](reference/online-stores/redis.md)
@@ -45,61 +45,62 @@
4545
* [Python API reference](http://rtd.feast.dev/)
4646
* [Usage](reference/usage.md)
4747

48-
## Feast on Kubernetes
49-
50-
* [Getting started](feast-on-kubernetes/getting-started/README.md)
51-
* [Install Feast](feast-on-kubernetes/getting-started/install-feast/README.md)
52-
* [Docker Compose](feast-on-kubernetes/getting-started/install-feast/quickstart.md)
53-
* [Kubernetes \(with Helm\)](feast-on-kubernetes/getting-started/install-feast/kubernetes-with-helm.md)
54-
* [Amazon EKS \(with Terraform\)](feast-on-kubernetes/getting-started/install-feast/kubernetes-amazon-eks-with-terraform.md)
55-
* [Azure AKS \(with Helm\)](feast-on-kubernetes/getting-started/install-feast/kubernetes-azure-aks-with-helm.md)
56-
* [Azure AKS \(with Terraform\)](feast-on-kubernetes/getting-started/install-feast/kubernetes-azure-aks-with-terraform.md)
57-
* [Google Cloud GKE \(with Terraform\)](feast-on-kubernetes/getting-started/install-feast/google-cloud-gke-with-terraform.md)
58-
* [IBM Cloud Kubernetes Service \(IKS\) and Red Hat OpenShift \(with Kustomize\)](feast-on-kubernetes/getting-started/install-feast/ibm-cloud-iks-with-kustomize.md)
59-
* [Connect to Feast](feast-on-kubernetes/getting-started/connect-to-feast/README.md)
60-
* [Python SDK](feast-on-kubernetes/getting-started/connect-to-feast/python-sdk.md)
61-
* [Feast CLI](feast-on-kubernetes/getting-started/connect-to-feast/feast-cli.md)
62-
* [Learn Feast](feast-on-kubernetes/getting-started/learn-feast.md)
63-
* [Concepts](feast-on-kubernetes/concepts/README.md)
64-
* [Overview](feast-on-kubernetes/concepts/overview.md)
65-
* [Architecture](feast-on-kubernetes/concepts/architecture.md)
66-
* [Entities](feast-on-kubernetes/concepts/entities.md)
67-
* [Sources](feast-on-kubernetes/concepts/sources.md)
68-
* [Feature Tables](feast-on-kubernetes/concepts/feature-tables.md)
69-
* [Stores](feast-on-kubernetes/concepts/stores.md)
70-
* [Tutorials](feast-on-kubernetes/tutorials-1/README.md)
71-
* [Minimal Ride Hailing Example](https://github.com/feast-dev/feast/blob/master/examples/minimal/minimal_ride_hailing.ipynb)
72-
* [User guide](feast-on-kubernetes/user-guide/README.md)
73-
* [Overview](feast-on-kubernetes/user-guide/overview.md)
74-
* [Getting online features](feast-on-kubernetes/user-guide/getting-online-features.md)
75-
* [Getting training features](feast-on-kubernetes/user-guide/getting-training-features.md)
76-
* [Define and ingest features](feast-on-kubernetes/user-guide/define-and-ingest-features.md)
77-
* [Extending Feast](feast-on-kubernetes/user-guide/extending-feast.md)
78-
* [Reference](feast-on-kubernetes/reference-1/README.md)
79-
* [Configuration Reference](feast-on-kubernetes/reference-1/configuration-reference.md)
80-
* [Feast and Spark](feast-on-kubernetes/reference-1/feast-and-spark.md)
81-
* [Metrics Reference](feast-on-kubernetes/reference-1/metrics-reference.md)
82-
* [Limitations](feast-on-kubernetes/reference-1/limitations.md)
83-
* [API Reference](feast-on-kubernetes/reference-1/api/README.md)
84-
* [Go SDK](https://godoc.org/github.com/feast-dev/feast/sdk/go)
85-
* [Java SDK](https://javadoc.io/doc/dev.feast/feast-sdk)
86-
* [Core gRPC API](https://api.docs.feast.dev/grpc/feast/core/coreservice.pb.html)
87-
* [Python SDK](https://api.docs.feast.dev/python/)
88-
* [Serving gRPC API](https://api.docs.feast.dev/grpc/feast/serving/servingservice.pb.html)
89-
* [gRPC Types](https://api.docs.feast.dev/grpc/feast/types/value.pb)
90-
* [Online Store Format Spec](specs/online_store_format.md)
91-
* [Offline Store Format Spec](specs/offline_store_format.md)
92-
* [Advanced](feast-on-kubernetes/advanced-1/README.md)
93-
* [Troubleshooting](feast-on-kubernetes/advanced-1/troubleshooting.md)
94-
* [Metrics](feast-on-kubernetes/advanced-1/metrics.md)
95-
* [Audit Logging](feast-on-kubernetes/advanced-1/audit-logging.md)
96-
* [Security](feast-on-kubernetes/advanced-1/security.md)
97-
* [Upgrading Feast](feast-on-kubernetes/advanced-1/upgrading.md)
98-
9948
## Contributing
10049

10150
* [Contribution process](contributing/contributing.md)
10251
* [Development guide](contributing/development-guide.md)
10352
* [Versioning policy](contributing/versioning-policy.md)
10453
* [Release process](contributing/release-process.md)
10554

55+
---
56+
57+
* [Feast on Kubernetes](feast-on-kubernetes-1/README.md)
58+
* [Getting started](feast-on-kubernetes-1/getting-started/README.md)
59+
* [Install Feast](feast-on-kubernetes-1/getting-started/install-feast/README.md)
60+
* [Docker Compose](feast-on-kubernetes-1/getting-started/install-feast/quickstart.md)
61+
* [Kubernetes \(with Helm\)](feast-on-kubernetes-1/getting-started/install-feast/kubernetes-with-helm.md)
62+
* [Amazon EKS \(with Terraform\)](feast-on-kubernetes-1/getting-started/install-feast/kubernetes-amazon-eks-with-terraform.md)
63+
* [Azure AKS \(with Helm\)](feast-on-kubernetes-1/getting-started/install-feast/kubernetes-azure-aks-with-helm.md)
64+
* [Azure AKS \(with Terraform\)](feast-on-kubernetes-1/getting-started/install-feast/kubernetes-azure-aks-with-terraform.md)
65+
* [Google Cloud GKE \(with Terraform\)](feast-on-kubernetes-1/getting-started/install-feast/google-cloud-gke-with-terraform.md)
66+
* [IBM Cloud Kubernetes Service \(IKS\) and Red Hat OpenShift \(with Kustomize\)](feast-on-kubernetes-1/getting-started/install-feast/ibm-cloud-iks-with-kustomize.md)
67+
* [Connect to Feast](feast-on-kubernetes-1/getting-started/connect-to-feast/README.md)
68+
* [Python SDK](feast-on-kubernetes-1/getting-started/connect-to-feast/python-sdk.md)
69+
* [Feast CLI](feast-on-kubernetes-1/getting-started/connect-to-feast/feast-cli.md)
70+
* [Learn Feast](feast-on-kubernetes-1/getting-started/learn-feast.md)
71+
* [Concepts](feast-on-kubernetes-1/concepts/README.md)
72+
* [Overview](feast-on-kubernetes-1/concepts/overview.md)
73+
* [Architecture](feast-on-kubernetes-1/concepts/architecture.md)
74+
* [Entities](feast-on-kubernetes-1/concepts/entities.md)
75+
* [Sources](feast-on-kubernetes-1/concepts/sources.md)
76+
* [Feature Tables](feast-on-kubernetes-1/concepts/feature-tables.md)
77+
* [Stores](feast-on-kubernetes-1/concepts/stores.md)
78+
* [Tutorials](feast-on-kubernetes-1/tutorials-1/README.md)
79+
* [Minimal Ride Hailing Example](https://github.com/feast-dev/feast/blob/master/examples/minimal/minimal_ride_hailing.ipynb)
80+
* [User guide](feast-on-kubernetes-1/user-guide/README.md)
81+
* [Overview](feast-on-kubernetes-1/user-guide/overview.md)
82+
* [Getting online features](feast-on-kubernetes-1/user-guide/getting-online-features.md)
83+
* [Getting training features](feast-on-kubernetes-1/user-guide/getting-training-features.md)
84+
* [Define and ingest features](feast-on-kubernetes-1/user-guide/define-and-ingest-features.md)
85+
* [Extending Feast](feast-on-kubernetes-1/user-guide/extending-feast.md)
86+
* [Reference](feast-on-kubernetes-1/reference-1/README.md)
87+
* [Configuration Reference](feast-on-kubernetes-1/reference-1/configuration-reference.md)
88+
* [Feast and Spark](feast-on-kubernetes-1/reference-1/feast-and-spark.md)
89+
* [Metrics Reference](feast-on-kubernetes-1/reference-1/metrics-reference.md)
90+
* [Limitations](feast-on-kubernetes-1/reference-1/limitations.md)
91+
* [API Reference](feast-on-kubernetes-1/reference-1/api/README.md)
92+
* [Go SDK](https://godoc.org/github.com/feast-dev/feast/sdk/go)
93+
* [Java SDK](https://javadoc.io/doc/dev.feast/feast-sdk)
94+
* [Core gRPC API](https://api.docs.feast.dev/grpc/feast/core/coreservice.pb.html)
95+
* [Python SDK](https://api.docs.feast.dev/python/)
96+
* [Serving gRPC API](https://api.docs.feast.dev/grpc/feast/serving/servingservice.pb.html)
97+
* [gRPC Types](https://api.docs.feast.dev/grpc/feast/types/value.pb)
98+
* [Online Store Format Spec](feast-on-kubernetes-1/reference-1/api/online_store_format.md)
99+
* [Offline Store Format Spec](feast-on-kubernetes-1/reference-1/api/offline_store_format.md)
100+
* [Advanced](feast-on-kubernetes-1/advanced-1/README.md)
101+
* [Troubleshooting](feast-on-kubernetes-1/advanced-1/troubleshooting.md)
102+
* [Metrics](feast-on-kubernetes-1/advanced-1/metrics.md)
103+
* [Audit Logging](feast-on-kubernetes-1/advanced-1/audit-logging.md)
104+
* [Security](feast-on-kubernetes-1/advanced-1/security.md)
105+
* [Upgrading Feast](feast-on-kubernetes-1/advanced-1/upgrading.md)
106+

docs/concepts/architecture-and-components.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,6 @@ A complete Feast deployment contains the following components:
2828
* **Offline Store:** The offline store persists batch data that has been ingested into Feast. This data is used for producing training datasets. Feast does not manage the offline store directly, but runs queries against it.
2929

3030
{% hint style="info" %}
31-
Java and Go Clients are also available for online feature retrieval. See [API Reference](../feast-on-kubernetes/reference-1/api/).
31+
Java and Go Clients are also available for online feature retrieval. See [API Reference](../feast-on-kubernetes-1/reference-1/api/).
3232
{% endhint %}
3333

docs/contributing/release-process.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ For Feast maintainers, these are the concrete steps for making a new release.
2222
2. Add the change log by applying the change log commit created in step 2.
2323
3. Check that versions are updated with `env TARGET_MERGE_BRANCH=master make lint-versions`
2424
7. Create a [GitHub release](https://github.com/feast-dev/feast/releases) which includes a summary of im~~p~~ortant changes as well as any artifacts associated with the release. Make sure to include the same change log as added in [CHANGELOG.md](https://github.com/feast-dev/feast/blob/master/CHANGELOG.md). Use `Feast vX.Y.Z` as the title.
25-
8. Update the[ Upgrade Guide](../feast-on-kubernetes/advanced-1/upgrading.md) to include the action required instructions for users to upgrade to this new release. Instructions should include a migration for each breaking change made to this release.
25+
8. Update the[ Upgrade Guide](../feast-on-kubernetes-1/advanced-1/upgrading.md) to include the action required instructions for users to upgrade to this new release. Instructions should include a migration for each breaking change made to this release.
2626

2727
When a tag that matches a Semantic Version string is pushed, CI will automatically build and push the relevant artifacts to their repositories or package managers \(docker images, Python wheels, etc\). JVM artifacts are promoted from Sonatype OSSRH to Maven Central, but it sometimes takes some time for them to be available. The `sdk/go/v tag` is required to version the Go SDK go module so that users can go get a specific tagged release of the Go SDK.
2828

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Feast on Kubernetes
2+
3+
{% hint style="success" %}
4+
Since Feast 0.10, it is not necessary to deploy Feast into Kubernetes any more. Feast runs as a light weight CLI/SDK that can configure your managed services to operate as a feature store. The documentation contained within this section exists for posterity sake and relates to Feast 0.9, which depends on both Kubernetes and Spark. Teams that want to consume from streaming sources have to continue to use this release until streaming support has been reintroduced to Feast.
5+
{% endhint %}
6+
7+
8+
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Advanced
2+
Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
# Audit Logging
2+
3+
{% hint style="warning" %}
4+
This page applies to Feast 0.7. The content may be out of date for Feast 0.8+
5+
{% endhint %}
6+
7+
## Introduction
8+
9+
Feast provides audit logging functionality in order to debug problems and to trace the lineage of events.
10+
11+
## Audit Log Types
12+
13+
Audit Logs produced by Feast come in three favors:
14+
15+
| Audit Log Type | Description |
16+
| :--- | :--- |
17+
| Message Audit Log | Logs service calls that can be used to track Feast request handling. Currently only gRPC request/response is supported. Enabling Message Audit Logs can be resource intensive and significantly increase latency, as such is not recommended on Online Serving. |
18+
| Transition Audit Log | Logs transitions in status in resources managed by Feast \(ie an Ingestion Job becoming RUNNING\). |
19+
| Action Audit Log | Logs actions performed on a specific resource managed by Feast \(ie an Ingestion Job is aborted\). |
20+
21+
## Configuration
22+
23+
| Audit Log Type | Description |
24+
| :--- | :--- |
25+
| Message Audit Log | Enabled when both `feast.logging.audit.enabled` and `feast.logging.audit.messageLogging.enabled` is set to `true` |
26+
| Transition Audit Log | Enabled when `feast.logging.audit.enabled` is set to `true` |
27+
| Action Audit Log | Enabled when `feast.logging.audit.enabled` is set to `true` |
28+
29+
## JSON Format
30+
31+
Audit Logs produced by Feast are written to the console similar to normal logs but in a structured, machine parsable JSON. Example of a Message Audit Log JSON entry produced:
32+
33+
```text
34+
{
35+
"message": {
36+
"logType": "FeastAuditLogEntry",
37+
"kind": "MESSAGE",
38+
"statusCode": "OK",
39+
"request": {
40+
"filter": {
41+
"project": "dummy",
42+
}
43+
},
44+
"application": "Feast",
45+
"response": {},
46+
"method": "ListFeatureTables",
47+
"identity": "105960238928959148073",
48+
"service": "CoreService",
49+
"component": "feast-core",
50+
"id": "45329ea9-0d48-46c5-b659-4604f6193711",
51+
"version": "0.10.0-SNAPSHOT"
52+
},
53+
"hostname": "feast.core"
54+
"timestamp": "2020-10-20T04:45:24Z",
55+
"severity": "INFO",
56+
}
57+
```
58+
59+
## Log Entry Schema
60+
61+
Fields common to all Audit Log Types:
62+
63+
| Field | Description |
64+
| :--- | :--- |
65+
| `logType` | Log Type. Always set to `FeastAuditLogEntry`. Useful for filtering out Feast audit logs. |
66+
| `application` | Application. Always set to `Feast`. |
67+
| `component` | Feast Component producing the Audit Log. Set to `feast-core` for Feast Core and `feast-serving` for Feast Serving. Use to filtering out Audit Logs by component. |
68+
| `version` | Version of Feast producing this Audit Log. Use to filtering out Audit Logs by version. |
69+
70+
Fields in Message Audit Log Type
71+
72+
| Field | Description |
73+
| :--- | :--- |
74+
| `id` | Generated UUID that uniquely identifies the service call. |
75+
| `service` | Name of the Service that handled the service call. |
76+
| `method` | Name of the Method that handled the service call. Useful for filtering Audit Logs by method \(ie `ApplyFeatureTable` calls\) |
77+
| `request` | Full request submitted by client in the service call as JSON. |
78+
| `response` | Full response returned to client by the service after handling the service call as JSON. |
79+
| `identity` | Identity of the client making the service call as an user Id. Only set when Authentication is enabled. |
80+
| `statusCode` | The status code returned by the service handling the service call \(ie `OK` if service call handled without error\). |
81+
82+
Fields in Action Audit Log Type
83+
84+
| Field | Description |
85+
| :--- | :--- |
86+
| `action` | Name of the action taken on the resource. |
87+
| `resource.type` | Type of resource of which the action was taken on \(i.e `FeatureTable`\) |
88+
| resource.id | Identifier specifying the specific resource of which the action was taken on. |
89+
90+
Fields in Transition Audit Log Type
91+
92+
| Field | Description |
93+
| :--- | :--- |
94+
| `status` | The new status that the resource transitioned to |
95+
| `resource.type` | Type of resource of which the transition occurred \(i.e `FeatureTable`\) |
96+
| `resource.id` | Identifier specifying the specific resource of which the transition occurred. |
97+
98+
## Log Forwarder
99+
100+
Feast currently only supports forwarding Request/Response \(Message Audit Log Type\) logs to an external fluentD service with `feast.**` Fluentd tag.
101+
102+
### Request/Response Log Example
103+
104+
```text
105+
{
106+
"id": "45329ea9-0d48-46c5-b659-4604f6193711",
107+
"service": "CoreService"
108+
"status_code": "OK",
109+
"identity": "105960238928959148073",
110+
"method": "ListProjects",
111+
"request": {},
112+
"response": {
113+
"projects": [
114+
"default", "project1", "project2"
115+
]
116+
}
117+
"release_name": 506.457.14.512
118+
}
119+
```
120+
121+
### Configuration
122+
123+
The Fluentd Log Forwarder configured with the with the following configuration options in `application.yml`:
124+
125+
| Settings | Description |
126+
| :--- | :--- |
127+
| `feast.logging.audit.messageLogging.destination` | `fluentd` |
128+
| `feast.logging.audit.messageLogging.fluentdHost` | `localhost` |
129+
| `feast.logging.audit.messageLogging.fluentdPort` | `24224` |
130+
131+
When using Fluentd as the Log forwarder, a Feast `release_name` can be logged instead of the IP address \(eg. IP of Kubernetes pod deployment\), by setting an environment variable `RELEASE_NAME` when deploying Feast.
132+
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# Metrics
2+
3+
{% hint style="warning" %}
4+
This page applies to Feast 0.7. The content may be out of date for Feast 0.8+
5+
{% endhint %}
6+
7+
## Overview
8+
9+
Feast Components export metrics that can provide insight into Feast behavior:
10+
11+
* [Feast Ingestion Jobs can be configured to push metrics into StatsD](metrics.md#pushing-ingestion-metrics-to-statsd)
12+
* [Prometheus can be configured to scrape metrics from Feast Core and Serving.](metrics.md#exporting-feast-metrics-to-prometheus)
13+
14+
See the [Metrics Reference ](../reference-1/metrics-reference.md)for documentation on metrics are exported by Feast.
15+
16+
{% hint style="info" %}
17+
Feast Job Controller currently does not export any metrics on its own. However its `application.yml` is used to configure metrics export for ingestion jobs.
18+
{% endhint %}
19+
20+
## Pushing Ingestion Metrics to StatsD
21+
22+
### **Feast Ingestion Job**
23+
24+
Feast Ingestion Job can be configured to push Ingestion metrics to a StatsD instance. Metrics export to StatsD for Ingestion Job is configured in Job Controller's `application.yml` under `feast.jobs.metrics`
25+
26+
```yaml
27+
feast:
28+
jobs:
29+
metrics:
30+
# Enables Statd metrics export if true.
31+
enabled: true
32+
type: statsd
33+
# Host and port of the StatsD instance to export to.
34+
host: localhost
35+
port: 9125
36+
```
37+
38+
{% hint style="info" %}
39+
If you need Ingestion Metrics in Prometheus or some other metrics backend, use a metrics forwarder to forward Ingestion Metrics from StatsD to the metrics backend of choice. \(ie Use [`prometheus-statsd-exporter`](https://github.com/prometheus/statsd_exporter) to forward metrics to Prometheus\).
40+
{% endhint %}
41+
42+
## Exporting Feast Metrics to Prometheus
43+
44+
### **Feast Core and Serving**
45+
46+
Feast Core and Serving exports metrics to a Prometheus instance via Prometheus scraping its `/metrics` endpoint. Metrics export to Prometheus for Core and Serving can be configured via their corresponding `application.yml`
47+
48+
```yaml
49+
server:
50+
# Configures the port where metrics are exposed via /metrics for Prometheus to scrape.
51+
port: 8081
52+
```
53+
54+
[Direct Prometheus](https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config) to scrape directly from Core and Serving's `/metrics` endpoint.
55+
56+
## Further Reading
57+
58+
See the [Metrics Reference ](../reference-1/metrics-reference.md)for documentation on metrics are exported by Feast.
59+

0 commit comments

Comments
 (0)