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

Fix the links in API management section #667

Merged
merged 1 commit into from
Nov 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
18 changes: 9 additions & 9 deletions en/docs/administration/distributed-tracing.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Supported distributed tracing systems,

## Configure Distributed Tracing

To set up distributed tracing, start by following the instructions outlined in [Customize Configurations](../setup/Customize-Configurations.md). These instructions will guide you through the process of acquiring the `values.yaml` file, which you will then use to tailor the tracing configurations to your specific needs.
To set up distributed tracing, start by following the instructions outlined in <a href="../../setup/Customize-Configurations" target="_blank">Customize Configurations</a>. These instructions will guide you through the process of acquiring the `values.yaml` file, which you will then use to tailor the tracing configurations to your specific needs.

!!! note
If you are trying out tracing capabilities of APK and do not have an actual deployment of Jaeger or Zipkin, you can start APK together with Jaeger/Zipkin by applying the below kubernetes artifacts to your cluster.
Expand Down Expand Up @@ -182,7 +182,7 @@ When using **Jaeger** for tracing, the format is same as for **Zipkin** to publi
maxPathLength: "256"
```

2. Follow the [quick start]({{base_path}}/en/latest/get-started/quick-start-guide/) guide and invoke backend.
2. Follow the <a href="../../get-started/quick-start-guide" target="_blank">quick start guide</a> and invoke backend.
3. Open Jaeger UI to view the traces. Navigate to `http://jaeger.example.com`

You will be able to browse through the request traces and expand each trace to view complete trace details.
Expand All @@ -208,7 +208,7 @@ Follow these steps to configure WSO2 APK with Zipkin.
maxPathLength: "256"
```

2. Follow the [quick start]({{base_path}}/en/latest/get-started/quick-start-guide/) guide and invoke backend.
2. Follow the <a href="../../get-started/quick-start-guide" target="_blank">quick start guide</a> and invoke backend.
3. Invoke the newly create API and open Zipkin UI to view the traces. Navigate to `http://zipkin.example.com`
4. Filter traces by `tagQuery=otel.library.name=APK` query.

Expand Down Expand Up @@ -253,11 +253,11 @@ Follow these steps to configure WSO2 APK with Azure Application Insights.
maximumTracesPerSecond: "2"
```

3. Follow the [quick start]({{base_path}}/en/latest/get-started/quick-start-guide/) guide and invoke backend.
4. Now open "Azure Application Insights" Trasaction search window and select `Dependency` for `Event types` filter
3. Follow the <a href="../../get-started/quick-start-guide" target="_blank">quick start guide</a> and invoke backend.
4. Now open "Azure Application Insights" Transaction search window and select `Dependency` for `Event types` filter
[![Azure Trace Filter](../assets/img/distributed-tracing/trace-azure-filter.png)](../assets/img/distributed-tracing/trace-azure-filter.png)

You will be able to see all traces. Detailed trace view will look like below.
You will be able to see all traces. The detailed trace view will look like the following image.

[![Azure Trace](../assets/img/distributed-tracing/trace-azure.png)](../assets/img/distributed-tracing/trace-azure.png)

Expand All @@ -267,7 +267,7 @@ You will be able to see all traces. Detailed trace view will look like below.

#### Configure APK to publish OTLP traces to a Jaeger backend

1. The kubernetes artifacts you have applied at the beginning already contain the required configuration for APK to publish OTLP traces. Add the following configuration to `values.yaml`'s `wso2.apk.dp.gatewayRuntime` section.
1. The Kubernetes artifacts you have applied at the beginning already contains the required configuration for APK to publish OTLP traces. Add the following configuration to `values.yaml`'s `wso2.apk.dp.gatewayRuntime` section.

```yaml
tracing:
Expand All @@ -283,7 +283,7 @@ You will be able to see all traces. Detailed trace view will look like below.
connectionTimeout: "20"
```

2. Follow the [quick start]({{base_path}}/en/latest/get-started/quick-start-guide/) guide and invoke backend.
2. Follow the <a href="../../get-started/quick-start-guide" target="_blank">quick start guide</a> and invoke backend.
3. Open Jaeger UI to view the traces. Navigate to `http://CLUSTER_IP:16686`

You will be able to browse through the request traces and expand each trace to view complete trace details.
Expand Down Expand Up @@ -324,7 +324,7 @@ You will be able to browse through the request traces and expand each trace to v
connectionTimeout: "20"
```

3. Follow the [quick start]({{base_path}}/en/latest/get-started/quick-start-guide/) guide and invoke backend.
3. Follow the <a href="../../get-started/quick-start-guide" target="_blank">quick start guide</a> and invoke backend.
4. Go to New Relic Tracing dashboard to view the traces.

You will be able to browse through the request traces and expand each trace to view complete trace details.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Following diagram depicts the architecture of how the WSO2 APIM Control Plane co

The APIM APK Agent is a component that connects the WSO2 API Manager (APIM) control plane with the WSO2 APK Gateway. The APIM APK Agent is responsible for the following tasks:

- Recieve JMS Events which relates to API,Application,Subscription management from the APIM Control Plane.
- Recieve JMS Events which relates to API, Application, Subscription management from the APIM Control Plane.
- Convert the data which is recieved from the APIM Control Plane to the APK Gateway understandable format which are K8s Custom Resources.
- Apply the generated Custom Resources to the K8s cluster to deploy API to APK Gateway.

Expand Down
6 changes: 3 additions & 3 deletions en/docs/control-plane/control-plane-configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
## Configuring API Manager Control Plane with APK Gateway using APIM-APK Agent

### Prerequisites
- API Manager 4.3 (Please refer APIM [installation guide](https://apim.docs.wso2.com/en/latest/install-and-setup/install/installation-prerequisites/) for more information)
- APK 1.2.0 (Please refer APK [installation guide](https://apk.docs.wso2.com/en/latest/install-and-setup/installation-prerequisites/) for more information)
- APIM-APK Agent 1.2.0 (Please refer APIM-APK Agent [installation guide](https://apk.docs.wso2.com/en/latest/install-and-setup/install/installation-prerequisites/) for more information)
- API Manager 4.3 (Please refer APIM <a href="https://apim.docs.wso2.com/en/latest/install-and-setup/install/installation-prerequisites/" target="_blank">installation guide</a> for more information)
- APK 1.2.0 (Please refer APK <a href="https://apk.docs.wso2.com/en/latest/install-and-setup/installation-prerequisites/" target="_blank">installation guide</a> for more information)
- APIM-APK Agent 1.2.0 (Please refer APIM-APK Agent <a href="https://apk.docs.wso2.com/en/latest/install-and-setup/install/installation-prerequisites/" target="_blank">installation guide</a> for more information)

#### Resources Requirements
- RAM: 10GB
Expand Down
6 changes: 3 additions & 3 deletions en/docs/control-plane/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Following diagram depicts the architecture of how the WSO2 APIM Control Plane co

The APIM APK Agent is a component that connects the WSO2 API Manager (APIM) control plane with the WSO2 APK Gateway. The APIM APK Agent is responsible for the following tasks:

- Recieve JMS Events which relates to API,Application,Subscription management from the APIM Control Plane.
- Recieve JMS Events which relates to API, Application, Subscription management from the APIM Control Plane.
- Convert the data which is recieved from the APIM Control Plane to the APK Gateway understandable format which are K8s Custom Resources.
- Apply the generated Custom Resources to the K8s cluster to deploy API to APK Gateway.

Expand All @@ -30,10 +30,10 @@ The APIM APK Agent is a component that connects the WSO2 API Manager (APIM) cont
- API Marketplace: Provide a marketplace for discovering and consuming APIs.
- Integration with WSO2 APK Gateway: Integrate with the APK Gateway for deploying APIs and managing traffic.

You can refer the [Control Plane API Management Overview](../control-plane/api-management/control-plane-api-management-overview.md) for more details on the supported and unsupported features.
You can refer the <a href="../../control-plane/api-management/control-plane-api-management-overview" target="_blank">Control Plane API Management Overview</a> for more details on the supported and unsupported features.

## Next Steps

You can refer the [Quick Start Guide](../get-started/quick-start-guide-with-cp.md) regards to trying out API Manager Control Plane with APK Gateway using APIM-APK Agent.
You can refer the <a href="../../get-started/quick-start-guide-with-cp" target="_blank">Quick Start Guide</a> regards to trying out API Manager Control Plane with APK Gateway using APIM-APK Agent.


Original file line number Diff line number Diff line change
Expand Up @@ -52,5 +52,5 @@ The above JSON Web Token (JWT) contains the following information.

You can configure backend JWT in two ways.

1. [Using the APK Conf file](./backend-jwt-token-manipulation-via-rest-api.md).
2. [Using CRs](./backend-jwt-token-manipulation-via-crs.md).
1. <a href="../../backend-jwt-token-manipulation/backend-jwt-token-manipulation-via-rest-api" target="_blank">Using the APK Conf file</a>
2. <a href="../../backend-jwt-token-manipulation/backend-jwt-token-manipulation-via-crs" target="_blank">Using CRs</a>
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ This functionality enables the addition, modification, and removal of request an

### Step 1 - Get the CRs for the relevant API configuration

Here, you can follow the steps in [Develop and Deploy a REST API via CRs](../../create-and-deploy-apis/rest/create-rest-api-using-crs.md) documentation and create the CRs to deploy an API from scratch.
Here, you can follow the steps in <a href="../../../../create-api/create-and-deploy-apis/rest/create-rest-api-using-crs" target="_blank">Develop and Deploy a REST API via CRs</a> documentation and create the CRs to deploy an API from scratch.

Alternatively, you can generate the CRs for a given apk-conf file using the steps as detailed in [this section]({{base_path}}/en/latest/api-management-overview/tools-for-api-development/#option-2-generate-k8s-custom-resources-using-config-generator-tool-and-deploy-the-api-using-kubernetes-client)
Alternatively, you can generate the CRs for a given apk-conf file using the steps as detailed in <a href="../../../../api-management-overview/tools-for-api-development#option-2-generate-k8s-custom-resources-using-config-generator-tool-and-deploy-the-api-using-kubernetes-client" target="_blank">this section</a>.

### Step 2 - Add the header modification filters to the HTTPRoute CR

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ operations:
```

Similarly, you can do the following to both request and response headers.

1. Add headers
2. Update existing headers
3. Remove headers
Expand All @@ -118,7 +119,7 @@ curl --location 'https://default.gw.wso2.com:9095/employees/1.0/employee' \
--header 'Authorization: Bearer <accessToken>
```

Since this guide uses the [httpbin service](https://httpbin.org/anything) which echoes the request and all of its headers, when you invoke the API, you will see the header "Test-Request-Header" with the value "Test-Value".
Since this guide uses the <a href="https://httpbin.org/anything" target="_blank">httpbin service</a> which echoes the request and all of its headers, when you invoke the API, you will see the header "Test-Request-Header" with the value "Test-Value".

### Sample Configurations

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

The header modification functionality allows the addition, modification, and removal of headers in both requests and responses. This capability is useful for enhancing control and flexibility in API interactions, ensuring that specific requirements for incoming requests and outgoing responses are consistently met. This functionality is configured using the HTTPRoute filters `RequestHeaderModifier` and `ResponseHeaderModifier` filters, which specify how headers should be manipulated at various stages of the request and response lifecycle.

Header modification can also be achieved using interceptors, as detailed in [this section](../interceptors/interceptors-overview.md). In a scenario where both interceptors and header modification policies are used, **the header modification filters will be applied after the interceptor.** For example. consider the following scenario.
Header modification can also be achieved using interceptors, as detailed in <a href="../../../../create-api/create-and-attach-api-policies/interceptors/interceptors-overview" target="_blank">this section</a>. In a scenario where both interceptors and header modification policies are used, **the header modification filters will be applied after the interceptor.** For example, consider the following scenario.

Assume the GET /employee route is configured with the following.

Expand All @@ -11,4 +11,9 @@ Assume the GET /employee route is configured with the following.

In this scenario, the interceptor headers will be added **first**, followed by the headers from the header modification policy.

You can also remove headers added by an interceptor using a header modification policy. Additionally, if you have configured a [mirror policy](../mirror-request-filters/overview.md) for this route, the modified headers will be sent in the mirrored request as well.
You can also remove headers added by an interceptor using a header modification policy. Additionally, if you have configured a [mirror policy](../mirror-request-filters/overview.md) for this route, the modified headers will be sent in the mirrored request as well.

Header modification using HTTPRoute filters can be achieved in the APK in two ways.

1. <a href="../../../create-and-attach-api-policies/header-modifier-filters/header-modifier-via-rest-api" target="_blank">Using the APK Conf file</a>
2. <a href="../../../create-and-attach-api-policies/header-modifier-filters/header-modifier-via-crs" target="_blank">Using CRs</a>
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,6 @@ Configuring an interceptor requires the following two steps.
2. For reference, a sample interceptor service for data conversion between application/json and application/xml data types with interceptor policy CRs can be found here: [request-response-mediation-interceptors](https://github.com/wso2/apk/tree/main/samples/request-response-mediation-interceptors)

3. Create `APIPolicy` with interceptor configuration and attach it to your `API`.

- [Attach Interceptor APIPolicy via REST API](../interceptors-via-rest-api)
- [Attach Interceptor APIPolicy via CR](../interceptors-via-crs)
- <a href="../../../create-and-attach-api-policies/interceptors/interceptors-via-rest-api" target="_blank">Using the APK Conf file</a>
- <a href="../../../create-and-attach-api-policies/interceptors/interceptors-via-crs" target="_blank">Using CRs</a>

Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ This functionality enables request mirroring, where a request can be duplicated

Here, you can follow the steps in <a href="../../../../create-api/create-and-deploy-apis/rest/create-rest-api-using-crs" target="_blank">Develop and Deploy a REST API via CRs</a> documentation and create the CRs to deploy an API from scratch.

Alternatively, you can generate the CRs for a given apk-conf file using the steps as detailed in <a href="../../../../api-management-overview/tools-for-api-development#option-2---generate-k8s-custom-resources-using-config-generator-tool-and-deploy-the-api-using-kubernetes-client" target="_blank">this section</a>.
Alternatively, you can generate the CRs for a given apk-conf file using the steps as detailed in <a href="../../../../api-management-overview/tools-for-api-development#option-2-generate-k8s-custom-resources-using-config-generator-tool-and-deploy-the-api-using-kubernetes-client" target="_blank">this section</a>.

### Step 2 - Add the header modification filters to the HTTPRoute CR

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ Request redirection allows you to send clients to a different URL. This can be u

### Step 1 - Get the CRs for the relevant API configuration

Here, you can follow the steps in [Develop and Deploy a REST API via CRs](../../create-and-deploy-apis/rest/create-rest-api-using-crs.md) documentation and create the CRs to deploy an API from scratch.
Here, you can follow the steps in <a href="../../../../create-api/create-and-deploy-apis/rest/create-rest-api-using-crs" target="_blank">Develop and Deploy a REST API via CRs</a> documentation and create the CRs to deploy an API from scratch.

Alternatively, you can generate the CRs for a given apk-conf file using the steps as detailed in [this section]({{base_path}}/en/latest/api-management-overview/tools-for-api-development/#option-2-generate-k8s-custom-resources-using-config-generator-tool-and-deploy-the-api-using-kubernetes-client)
Alternatively, you can generate the CRs for a given apk-conf file using the steps as detailed in <a href="../../../../api-management-overview/tools-for-api-development#option-2-generate-k8s-custom-resources-using-config-generator-tool-and-deploy-the-api-using-kubernetes-client" target="_blank">this section</a>.

### Step 2 - Add the request redirection filters to the HTTPRoute CR

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
This approach requires five CRs.

- API CR
- HTTPRoute CR
- Backend CR
- APIPolicy CR
- Secret CR

Let's create an AI API with following steps:
Let's create an AI API with the following steps:

- [Create API CR](#create-api-cr)
- [Create HTTPRoute CR](#create-httproute-cr)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ Follow the instructions below to design a GraphQL API.
scopes: []
```

4. To invoke the system APIs such as for deploying, we need a valid access token issued by an identity provider (IdP). Follow the ["Generate Access Token"](../../../develop-and-deploy-api/security/generate-access-token.md) documentation to generate an access token.
4. To deploy the API, we need a valid access token issued by an identity provider (IdP). Follow the <a href="../../../../develop-and-deploy-api/security/generate-access-token" target="_blank">Generate Access Token</a> documentation to generate an access token.

5. After generating the token, you can deploy the GraphQL API with the command

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ Your apk-conf file will now be as follows.

### Step 4 - Deploy the API

To deploy the API, we need a valid access token issued by an identity provider (IdP). Follow the <a href="../../../../develop-and-deploy-api/security/generate-access-token" target="_blank">Generate Access Token</a> documentation to generate an access
To deploy the API, we need a valid access token issued by an identity provider (IdP). Follow the <a href="../../../../develop-and-deploy-api/security/generate-access-token" target="_blank">Generate Access Token</a> documentation to generate an access token.

After generating the token, you can deploy the gRPC API with the following command.

Expand Down
Loading