Gateway has infrastructural support for optional features and extensions (such as Video Clipping for Partial File Restore) that you that can be drop into your a Swarm implementation as desired. (v6.1)
Table of Contents | ||
---|---|---|
|
Installing Dynamic Features
After you obtain obtaining the optional package for your a feature, you can install it on your the Gateways, along with any supporting frameworks needed, such as FFmpeg, which DataCore provides preconfigured within a Docker container.
Info | |
---|---|
title | Best practiceUse Docker and install DataCore's provided container; this spares you avoids dealing with third-party repo repository choices, their dependencies, and resource reconfiguration required to protect Gateway's performance. Installing without the container requires assistance from DataCore Support. |
Copy the package for the feature to a server
that isrunning Content Gateway:
caringo-FEATURE-VERSION.noarch.rpm
- If
Upgrade to RHEL/CentOS 7 (required by Docker) if the server is running RHEL/CentOS 6.x
, upgrade to RHEL/CentOS 7 (required by Docker).
- If it is running Content Gateway 6.0 or earlier, upgrade Gateway
Upgrade Gateway (versions 6.1 and higher support drop-in features such as video clipping) if running Content Gateway 6.0 or earlier.
See Gateway Installation. - If
Upgrade Content UI
isto support this feature if running version 6.1 or earlier
, upgrade it to support this feature.
See Content UI Installation. Install the package.
Code Block yum install caringo-FEATURE-VERSION.noarch.rpm
The installation creates a
features.d
directory under/etc/caringo/cloudgateway/
, which is where Gateway detects optional, dynamic features.Install any additional frameworks, such as multimedia support via FFmpeg, which DataCore provides preconfigured in a Docker container.
From an Internet-connected machine:Check whether Docker is installed:
If notdocker info
Else, install the Docker package,
thenstart the daemon, check its status, and enable it system-wide. See docs.docker.com/install/linux/docker-ce/centos/
Verify Docker by running a container test:
Code Block docker run hello-world
Load the provided container:
Code Block docker load < caringo-gateway-VERSION.feature.FEATURE.via.docker.VERSION.x86_64
Gateway
will createcreates the following directory for spooling content:
If/var/spool/caringo/cloudgateway/features
Gateway refuses to start if it cannot create this directory
, Gateway will refuse to start.
In setting
stilliptables
rules, Docker closes external TCP access to port 80 (although ping and sshwork); be sure to explicitly open port 80 again so
thatclients can access Gateway.
Code Block firewall-cmd --add-port=80/tcp --permanent firewall-cmd --reload systemctl restart docker
Repeat the above process on any remaining Content Gateway servers.
Restart the Gateway(s).
On reboot, Content Gateway detects the feature; on a page refresh, Content UI displays the additional functionality, such as the clipping control for video content.
Metrics for Feature Usage
Dynamic features include a set of metrics that can give you giving visibility into how each feature is being used. (v6.2)
These are the Prometheus Node Exporter and Grafana metrics you can see about your displaying dynamic features:
Code Block |
---|
curl http://GATEWAY:9100/metrics -s | grep -i feature |
caringo_gateway_feature_install_count | How many dynamic features are installed currently. |
---|---|
caringo_gateway_feature_invocation_count | How many times was the feature called, since the last Gateway restart. |
caringo_gateway_feature_invocation_latency | How much time, on average, did successful calls for that feature take, since the last Gateway restart. For video clipping, this |
varies relative to the size of the clips being created. | |
caringo_gateway_feature_errors_count | How many times did the feature call fail, since the last Gateway restart. |
---|
See Prometheus Node Exporter and Grafana.
Audit Logging for Features
Each dynamic feature logs operations to provide auditing. When you create creating a video clip, for example, Gateway handles it asynchronously and acknowledges the request with an INVOKE message, which will appear appears first in your the audit log. That acknowledgement references the future JSON result object. When that JSON result later posts, it reports the outcome of the clipping request, such as the ffmpeg FFmpeg exit code and the duration, capturing the same information that you would get back received on the response if it were synchronous.
Code Block |
---|
2019-08-22 14:32:04,991 INFO [F38143E84D3EC62E] 2 192.168.1.154 192.168.1.154 Feature:videoclipping INVOKE user1 (none) 200 0 149 38.00 d1.example.com bucket1 inputMovie.mp4 2019-08-22 14:32:15,022 INFO [F38143E84D3EC62E] 2 192.168.1.154 192.168.1.154 Feature:videoclipping POST user1 (none) 201 641705 46 0.09 d1.example.com bucket1 outputClip.mp4 2019-08-22 14:32:15,061 INFO [F38143E84D3EC62E] 2 192.168.1.154 192.168.1.154 Feature:videoclipping POST user1 (none) 201 149 46 0.04 d1.example.com bucket1 inputMovie.mp4.F38143E84D3EC62E.json |
All JSON result objects are temporary, by default: they are created with a lifepoint that triggers deletion after 5 days.
...
Change the default in the Gateway Configuration, gateway.cfg
([dynamic_features] resultObjectLifetime=5
).
Child pages (Children Display) |
---|